【技术分享】万物皆可fuzz之sql注入waf绕过

华盟原创文章投稿奖励计划

注:以下内容与测试工具仅限技术交流,严禁用于非法攻击

0X01 前言

首先感谢各位表哥对公众号的关注与支持,今天本来打算给大家发一篇实战的waf绕过,结果不知道什么原因虚拟机装waf各种失败,所以只能给大家讲讲绕waf的原理。关注公众号即可获得本篇文章中的实验的测试工具。工具仅供技术交流与研究,严禁用于非法攻击,恶意使用本次实验工具造成的一切后果与公众号以及作者无关

0X02 什么是fuzz

在讲fuzz与sql注入结合绕waf之前我们先来讲讲什么是fuzz,fuzz其实就是一种对请求参数的模糊测试,简单来说就是对一个接口的某个参数或多个参数用自定义的内容进行批量提交,根据接口返回内容来判断自定义内容参数对接口的影响。

0X03 sql注入waf常见姿势

首先先说waf防御的原理,简单来说waf就是解析http请求,检测http请求中的参数是否存在恶意的攻击行为,如果请求中的参数和waf中的规则库所匹配,那么waf则判断此条请求为攻击行为并进行阻断,反之则放行。

常见的sql注入绕过waf有两种方式,一种是利用waf可能存在的http协议解析缺陷来绕过waf,另外一种是利用各种方式来包装sql注入语句进行混淆来绕过waf的规则库。

下面来对常见的姿势进行总结:
断包绕过

缓冲区溢出
协议不兼容
参数污染
大小写绕过
编码绕过
注释绕过
等价替换

0X04 FUZZ与sql注入waf绕过结合

首先来说说造轮子的原理,fuzz是对某个接口的一个参数或多个参数进行自定义参数批量请求的模糊测试,sql注入的漏洞成因是某个接口中后端没有对某个参数或多个参数的内容进行过滤并将参数内容直接合并到sql语句

中进行查询,waf的防御原理是解析http请求,对里面每个参数的内容根据规则库进行匹配,那么通过fuzz结合sql注入对waf进行绕过的原理也就显而易见了。首先我们生成大量经过混淆的sql注入语句,然后填入对应参数中,进行批量发送,根据返回内容进行判断waf是否对这种混淆方式进行拦截,如果拦截则判断这种混淆方式不可取,如果不拦截则可以用这种混淆的方式对所有的sql注入语句进行包装。

首先我们来生成fuzz字典
【技术分享】万物皆可fuzz之sql注入waf绕过

然后用这些随机混淆后的语句对注入点进行批量测试,来判断是否拦截,由于我虚拟机搞事情,waf环境没有装上,在这里就不进行演示了。第二步就是对接口进行批量发送请求了


0X05 实验工具

为了让各位兄弟们测试起来更加方便,我简单为各位兄弟写了个小工具,一键绕过waf,并自动生成sqlmap的tamper,由此来感谢各位兄弟对公众号的关注。在这里再次声明:工具仅供技术交流与研究,严禁用于非法攻击,恶意使用本次实验工具造成的一切后果与公众号以及作者无关

好,我们还是先简单看一下源码

【技术分享】万物皆可fuzz之sql注入waf绕过

运行一下

【技术分享】万物皆可fuzz之sql注入waf绕过

填入一下靶机测试一下,感谢青山表哥提供的线上靶机

【技术分享】万物皆可fuzz之sql注入waf绕过

单机绕过
【技术分享】万物皆可fuzz之sql注入waf绕过

可以看到随机混淆出的东西已经绕过了waf,并输出了混淆方式,下面单机生成tamper,直接将生成的tamper扔进sqlmap就可以直接用,非常方便

【技术分享】万物皆可fuzz之sql注入waf绕过

【技术分享】万物皆可fuzz之sql注入waf绕过

测试一下

【技术分享】万物皆可fuzz之sql注入waf绕过
【技术分享】万物皆可fuzz之sql注入waf绕过

可以看到,成功了通过tamper绕过了测试环境中的waf

0X06 后记

以上就是今天我给大家分享的文章,文章有看不懂的地方欢迎大家来跟我交流,有错误的地方也希望各位大佬批评指正。

再次郑重声明一次,以上内容仅用于学习交流,严禁用于非法用途

华盟知识星球入口

文章来源:微信公众号:远洋的小船  

本文原创,作者:SIREN,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/247754.html

发表评论