SQLMap高级绕过技术全解析
Web 安全攻防实战:SQL 注入从入门到精通
在渗透测试圈内,SQLMap是当之无愧的自动化注入神器,但真正拉开差距的,是能否熟练运用它的绕过技术。正面对抗WAF往往吃力不讨好,真正的高手都懂得绕着走。
绕过技术的本质
WAF本质上是一套规则匹配系统,它会根据已知特征拦截恶意请求。绕过技术的核心思路就两条:要么让攻击载荷看起来不像攻击,要么让WAF的匹配规则失效。SQLMap内置了几十种tamper脚本,就是专门干这个的。
常用绕过姿势
编码绕过是最基础的手段。URL编码、Unicode编码、十六进制编码轮番上阵,WAF可能只认得其中一种。space2comment脚本把空格换成/**/,这对一些简单的WAF特别管用。between脚本更巧妙,把AND 1=1转换成AND 1 BETWEEN 1 AND 1,特征码直接消失。
注释干扰也是常用套路。SQL允许在关键字中间插入注释,比如UN/**/ION,WAF如果没做递归过滤,很容易被绕过。equaltolike脚本更是把等号换成LIKE,绕过一些基于等号匹配的规则。
协议层绕过更高级。HTTP参数污染(HPP)允许同一参数名提交多个值,WAF可能只检查第一个,而后端却合并处理。HTTP混合污染(HPF)则是在参数名上做文章,用id=1&id=2这种形式打乱检测逻辑。
实战中的组合拳
单一绕过脚本往往不够用,需要串联使用。比如先space2comment再加urlencode,最后用randomcomments插入随机注释。顺序很重要,有的脚本会破坏后续脚本的效果。
对于云WAF这类更难缠的对手,可以考虑延时发送请求、模拟正常用户行为轨迹,或者直接更换代理池。SQLMap的--delay参数、--proxy参数配合代理池使用,能有效降低被封禁的概率。
绕过不是万能的
再好的绕过技术也有失效的一天。WAF在进化,机器学习、行为分析越来越多地被应用到安全产品中。真正的防御不是依赖WAF,而是从源头做好代码安全——参数化查询永远是最有效的防线。渗透测试的意义也在于此:发现漏洞,推动修复,而不是制造破坏。

参与讨论
这文章看着挺唬人,实际真遇到云 WAF 还是得手动搞。