XSS学习(三)挖掘思路
HTML标签之间
<div id="body">
[输出点]
</div>
payload:<script>alert(1)</script>
HTML标签之内
<input type="text" value=" [输出点] ">
payload:
1." onmouseover=alert(1) (闭合属性)
2." ><script>alert(1)</script> (闭合属性与标签)
当script标签没有被过滤的时候可以使用payload2,当script标签被过滤的时候可以使用payload1
假设有如下情况:
<input type="hidden" value=" [输出点] ">
这个时候
无法使用闭合属性的payload,因为hidden标签会先被浏览器识别
当hidden标签在输出点之后时
<input value=" [输出点] " type="hidden">
可以使用闭合属性的标签1 " onmouseover=alert(1) type="text
这样不仅把payload写入了页面,同时提前将type类型定义为text,这样后面的hidden就失效了
****
输出在src/href/action等属性内
<a href=" [输出点] ">click me</a>
payload:
javascript:alert(1) //伪协议浏览器都会支持
或者
data:text/html;base64;PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
(现版本的ie,chrome,firefox均不支持)
**输出在on*事件内**
on*时间是可以执行javascript脚本的,根据场景弄清楚不同的闭合策略即可
<a href="#" onclick="eval(‘[输出点]’)>click me</a>
payload:alert(1)
在Javascript代码中
<script>a=" [输出点]"</script>
payload:
</script><script>alert(1)
";alert(1)
HTML与Javascript编码
例:
A:
<input type="button" id="exec_btn" value="exec" onclick="document.write(htmlEncode('<img src=@ onerror=alert(1) />'))"/>
B:
<input type="button" id="exec_btn" value="exec" onclick="document.write('<img src=@ onerror=alert(1) />')"/>
A与B两个例子,谁会执行alert(1)?
javascript出现在html标签中,javascript可以进行html编码
1.进制编码:&#xH; &#D;
2.HTML实体编码
在javascript执行前,浏览器会进行html转码,所以在A例中,当浏览器执行过一次htmlencode之后,会执行script脚本,但是此时尖括号已经被转成了html的实体编码,所以A不会执行alert(1)
当输入内容出现在javascript中的时候,需要遵循javascript编码规则
1.unicode:\uH
2.普通十六进制:\xH
3.转义:在特殊字符前加\转义(\' \" \<)
javascript在执行前会自动解码
****
具备htmlencode功能的标签
<title></title>
<iframe></iframe>
<noscript></noscript>
<noframes></noframes>
浏览器解码顺序
HTML解码 -> URL解码 -> js(unicode)解码
XSS学习(三)挖掘思路的更多相关文章
- PostMessage xss学习和挖掘
PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- 第四次:渗透练习,xss学习
xss学习 一.学习目的 初步了解xss攻击,不包括(DOM类型) 二.附加说明 1.xss介绍 https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/ ...
- 机器学习:scikit-learn 文档、深入学习机器学习的思路
一.scikit-learn 的文档查阅 网页访问 scikit-learn 的文档: scikit-learn.org —— Document —— User Guide: scikit-learn ...
- PHP代码审计4-漏洞挖掘思路
漏洞挖掘思路 漏洞形成的条件 1.变量可控制 2.变量可到达有利用价值的函数(危险函数) 漏洞造成的效果 漏洞的利用效果取决于最终的函数功能,变量进入什么样的函数就导致什么样的效果 危险函数 文件包含 ...
- TweenMax动画库学习(三)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) ...
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- 【转载】目前主流过滤XSS的三种技术
目前主流过滤XSS的三种技术 过滤 过滤,顾名思义,就是将提交上来的数据中的敏感词汇直接过滤掉.例如对"<script>"."<a>". ...
- 【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享
CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享 1.缘起 这些年来一直在其他公司的实验箱和别人的开发板上进行教学与开发工作,总是觉得功能设计不那么合意.心里突然冒出个 ...
随机推荐
- 使用AES加密的勒索类软件分析报告
报告名称: 某勒索类软件分析报告 作者: 李东 报告更新日期: 样本发现日期: 样本类型: 样本文件大小/被感染文件变化长度: 样本文件MD5 校验值: da4ab5e31793 ...
- numpy中的stack操作:hstack()、vstack()、stack()、dstack()、vsplit()、concatenate()
stack():沿着新的轴加入一系列数组. vstack():堆栈数组垂直顺序(行) hstack():堆栈数组水平顺序(列). dstack():堆栈数组按顺序深入(沿第三维). concatena ...
- Java 使用 Redis存储系统
redis是一个key-value存储系统.它支持存储的value类型很多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希 ...
- 在用单片机接受串口数据的时候,第一位是0x0A
unsigned char data len=0; //命令字符串长度if(RI) //如果数据已经接收完,即RI=1{ RI=0; //对RI进行清零 cmd_buf[counter] = SBUF ...
- 【SoftwareTesting】Lab 1
1. 安装junit, hamcrest 和 eclemma 分别下载 hamcrest-core-1.3.jar和junit-4.12.jar这两个jar包,并加入到新建的项目中 具体步骤为:右 ...
- 异构去堆叠 | 一种完美提升网络高可用SLA的方案
行业内接入网络去堆叠已经逐步成为主流方向,在大型互联网公司也已经批量部署.但由于京东集团不同的业务需求及历史原因,没有条件完全复制目前主流的ARP转主机路由方式的去堆叠方案,这促使我们设计一种尽可能满 ...
- kubernetes二进制部署k8s-master集群controller-manager服务unhealthy问题
一.问题现象 我们使用二进制部署k8s的高可用集群时,在部署多master时,kube-controller-manager服务提示Unhealthy [root@ceph-01 system]# k ...
- 团队作业3——alpha阶段冲刺
1.博客链接集合 敏捷冲刺1 敏捷冲刺2 敏捷冲刺3 敏捷冲刺4 敏捷冲刺5 敏捷冲刺6 敏捷冲刺7 测试随笔 冲刺总结随笔 2.项目git地址 git地址 3.项目成员贡献比例 成员 比例 张艺琳( ...
- vue将网页中的特定部分转成pdf并下载(仅供个人学习记录)
先安装支持 将页面html转换成图片npm install --save html2canvas 将图片生成pdfnpm install jspdf --save 组件引用: import html2 ...
- SQLServer数据库
分离数据库:右键数据库→任务→分离数据库→确定 附加数据库:数据库右键→任务→附加→选择要附加的dlf文件→附加 导出SQL脚本步骤:右键数据库→任务→生成脚本→高级→要编写脚本的数据的类型→架构和数 ...