搜索
当前位置:首页 > 娱乐 > sqlmap绕过waf

sqlmap绕过waf

发表于 2026-10-17 06:06:55 来源:烟消火灭网
sqlmap撞上WAF,绕过就像拿改锥捅防盗门。绕过门没开,绕过改锥断了三根。绕过这是绕过我在一次授权测试里悟出来的道理——目标站点的WAF规则写得跟迷宫似的,普通payload全被拦在门外,绕过返回的绕过页面清一色是“403 Forbidden”。 那次测试,绕过我盯着sqlmap的绕过输出,满屏的绕过“all tested parameters appear to be not injectable”。参数明明存在注入点,绕过但WAF把关键字过滤得干干净净。绕过union、绕过select、绕过sleep这些词,绕过连带着大小写变体、注释符拆分,全被正则表达式逮个正着。常规手段行不通,只能换思路。 第一招,改编码。sqlmap有个`--tamper`参数,能加载脚本改写payload。我试了`space2comment`——把空格换成`/**/`,WAF对注释符的拦截通常比空格松。跑了一轮,还是被拦。接着试`between`,把`>`和`=`替换成`BETWEEN ... AND`,总算有一个请求穿透了。响应时间多了0.3秒,盲注的迹象。但WAF的规则组不止一层,后面还有针对`information_schema`的过滤。于是我把`--tamper`串起来用:`space2comment,between,randomcase`。sqlmap支持多个tamper叠加,像叠buff一样。这次跑通了,虽然慢,但数据开始一点点往外吐。 第二招,绕不过就拖。WAF对单次请求的检测有长度限制,有些规则在payload超过一定字节后直接放行——估计是怕误伤正常的大数据提交。我用`--prefix`和`--suffix`往注入点前后塞垃圾数据,比如`/***/`加上几百个随机字母,让整个请求体膨胀到WAF的检测上限之外。这招不是每次都灵,但对某些基于正则匹配的WAF特别有效。那次测试里,我把payload填充到接近8KB,sqlmap突然就正常注入了,跟没WAF似的。 第三招更脏,直接打WAF本身。有些WAF用的是开源规则集,比如ModSecurity的CRS,规则是公开的。我查了目标站点响应头里的`Server`和`X-Powered-By`,判断出是某云厂商的WAF,再去翻它的历史漏洞。有个版本对分块传输编码处理不当,攻击者可以在`Transfer-Encoding: chunked`里塞畸形块,绕过检测。sqlmap有个`--chunked`选项,专门干这个。打开后,请求被拆成多个分块发送,WAF只检查第一块,后面的全放行。那次我只跑了十几分钟,就把数据库版本拖出来了——MySQL 5.7.26,连补丁都没打全。 但绕过WAF不只是技术活。有一次我碰上个WAF,规则写得烂但运气好——它直接拦截所有包含`sqlmap`用户代理的请求。我一开始没注意,跑半天全被拒。后来用`--random-agent`换掉UA,瞬间通了一半。还有一次,WAF对频率敏感,我加了个`--delay 5`,每请求间隔5秒,居然就不拦了。那WAF大概是把高频请求当作扫描特征,低速渗透反而安全。 说到底,sqlmap绕过WAF的核心就一句话:别拿默认配置硬刚。WAF是死的,规则是死的,但你的payload可以活。多试几种tamper,调调请求格式,看看响应头的差异。真实环境里没有万能钥匙,只有不断试错后找到的那条裂缝。那次测试结束,我拿到目标库里的三万条用户数据,但真正让我兴奋的不是数据——是那个被绕过的WAF,它在我改到第三个tamper组合时,终于露出了破绽。
随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by sqlmap绕过waf,烟消火灭网   sitemap

回顶部