XSS漏洞分析

原理:利用网页开发时web应用程序对用户输入过滤不足导致将恶意代码注入到网页中,使用户浏览器加载并执行恶意代码,通常是JavaScript类型,也包括java、vbs、flash、html等。

解码的顺序是HTML,URL和JavaScript

常用的测试方法:alert、confirm、prompt

第一题:

html 复制代码
<a href="%6a%61%76%61%73%63%72%69%70%74:%61%6c%65%72%74%28%31%29">aaa</a>

执行不了。%6a%61%76%61%73%63%72%69%70%74和 %61%6c%65%72%74%28%31%29为url的编码

解码为:<a href="script:alert(1)">aaa</a> ,但是href不认识url的编码,所以不能执行

第二题:

html 复制代码
<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:%61%6c%65%72%74%28%32%29">

执行得了,因为先经过html的解码。而 以&#的是以html的实体编码,所以可以运行

第三题:

html 复制代码
<a href="javascript%3aalert(3)">ccc</a>

执行不了 ,一样的道理,%3a为url编码,href识别不了

第四题:

html 复制代码
<div>&#60;img src=x onerror=alert(4)&#62;</div>

执行不了。解析器在解析这个字符引用后不会转换到"标签开始状态"。正因为如此,就不会建立新标签。因此,我们能够利用字符实体编码这个行为来转义用户输入的数据从而确保用户输入的数据只能被解析成"数据"。从HTML解析机制看,在读取<div>之后进入数据状态,<会被HTML解码,但不会进入标签开始状态,当然也就不会创建img元素,也就不会执行

第五题:

html 复制代码
<textarea>&#60;script&#62;alert(5)&#60;/script&#62;</textarea>

执行不了。 以上编码可以被解码,但是会以原样输出,原因如下

可以看出<textarea>标签为RCDATA元素,只可以容纳文本和字符引用

第六题:

html 复制代码
<button onclick="confirm('7&#39;);">Button</button>

可以执行,因为&#39;被html解码成了'

第七题:

html 复制代码
<button onclick="confirm('8\u0027);">Button</button>

执行不了。在JS中只有字符串和标识符能用Unicode表示,'显然不行,JS执行失败

第八题:

html 复制代码
<script>&#97;&#108;&#101;&#114;&#116&#40;&#57;&#41;&#59</script>

执行不了。在上面例子中提过,script属于原始文本元素,可以容纳文本,但是没有字符引用,所以不能对我们的编码进行解码,所以不能执行

第九题:

html 复制代码
<script>\u0061\u006c\u0065\u0072\u0074(10);</script>

可以执行。直接当成文本提交,然后会对url编码进行解码,所以可以执行

第十题:

html 复制代码
<script>\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0029</script>

执行不了。一样的道理在JS中只有字符串和标识符能用Unicode表示,所以不能执行

第十一题:

html 复制代码
<script>\u0061\u006c\u0065\u0072\u0074(\u0031\u0032)</script>

不能执行。这里看似将没毛病,但是这里\u0031\u0032在解码的时候会被解码为字符串12,注意是字符串,不是数字,文字显然是需要引号的,JS执行失败

第十二题:

html 复制代码
<script>alert('13\u0027)</script>

执行不了。 一样的道理在JS中只有字符串和标识符能用Unicode表示,所以不能执行

第十三题:

html 复制代码
<script>alert('14\u000a')</script>

可以执行。\u000a在JavaScript里是换行,就是\n,相当于在源码里直接按一下回车键,可以执行

第十四题:

html 复制代码
<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>

在href中由URL模块处理,解码得到

html 复制代码
javascript:\u0061\u006c\u0065\u0072\u0074(15)

识别JS协议,然后由JS模块处理,解码得到

html 复制代码
javascript:alert(15)

最后被执行

相关推荐
果丁智能4 小时前
智能锁赋能网约房民宿数字化管控:身份核验+远程授权,筑牢安全防线、降本增效
网络·数据库·人工智能·安全·智能家居
云安全助手5 小时前
Anthropic年度报告解读:AI重塑网络攻击形态,传统防御体系亟待升级
人工智能·安全·网络安全·ai大模型
映翰通朱工6 小时前
工业4G网关无公网IP远程运维实战(内网终端异地访问方案)
运维·服务器·网络·安全·智能路由器
夏影孤灯6 小时前
五、存储测试工具 vdbench
云计算
GIS数据转换器7 小时前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
guyuyiqi9 小时前
多效唑农药残留检测卡快速检测果蔬中的多效唑农药残留
科技·安全
AOwhisky10 小时前
Redis 学习笔记(第一期):概述、安装配置与核心理论
运维·数据库·redis·笔记·学习·云计算
东方隐侠安全团队-千里11 小时前
币安Skills Hub:散户的“机构级超能力“来了
安全·ai·区块链·skills
m0_7381207211 小时前
渗透测试基础——基于Docker的Rsync服务靶场搭建与原理讲解
运维·服务器·网络·安全·web安全·docker·容器
CoreTK芯通康EMC整改11 小时前
PCB 信号回流路径 EMC 失效深度解析:原理、误区与量产级整改方案
网络·经验分享·安全·emc整改案例·emc整改