渗透测试-SQL注入之Fuzz绕过WAF

WAF绕过原理之Fuzz绕过

前言

一、什么是Fuzz

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

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

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

FUZZ与sql注入waf绕过结合
首先来说说造轮子的原理,fuzz是对某个接口的一个参数或多个参数进行自定义参数批量请求的模糊测试,sql注入的漏洞成因是某个接口中后端没有对某个参数或多个参数的内容进行过滤并将参数内容直接合并到sql语句中进行查询,waf的防御原理是解析http请求,对里面每个参数的内容根据规则库进行匹配,那么通过fuzz结合sql注入对waf进行绕过的原理也就显而易见了。首先我们生成大量经过混淆的sql注入语句,然后填入对应参数中,进行批量发送,根据返回内容进行判断waf是否对这种混淆方式进行拦截,如果拦截则判断这种混淆方式不可取,如果不拦截则可以用这种混淆的方式对所有的sql注入语句进行包装。

然后用burp生成fuzz字典,进行爆破就可以了

二、利用Fuzz绕过WAF获取数据库信息

1.Fuzz绕过方法

这里我们下载网站安全狗作为WAF,用sqli-labs实验第一关进行测试
首先我们输入
http://192.168.222.4/sqli-labs/Less-1/?id=1’
在这里插入图片描述
发现报错,进行SQL注入试试,输入
http://192.168.222.4/sqli-labs/Less-1/?id=1’ and ‘1’=‘1
在这里插入图片描述
发现WAF进行了拦截,无法进行注入,这时我们就要借助burp进行抓包,进行Fuzz绕过。
在这里插入图片描述
这时我们发送到intruder进行爆破,这里我补充一些知识,如何进行设置参数爆破,
我们可以对空格进行转义,空格有很多的编码表现形式,(’ '==%20)
在这里插入图片描述
在这里插入图片描述
像我们黑盒测试绕过方法中有对空格进行转义的字符,可以利用构造特殊字符进行爆破,这里我们利用/* xxx*/进行实验。

2.利用Fuzz绕过WAF获取数据库信息

在这里插入图片描述

http://192.168.222.4/sqli-labs/Less-1/?id=1%27%20and%20%271%27=%271
我们就可以将%20进行转换为/* a*/,设置参数,设置字符a1!%(/),和payload
在这里插入图片描述
设置线程为20
在这里插入图片描述
进行攻击
在这里插入图片描述
这里返回不一样的数据包,再查看一下图片,看一下render
在这里插入图片描述
发现返回了用户信息,绕过成功。
这里同样可以通过查询语句注入,在进行burp爆破就可以了,找不同的数据包就可以成功绕过,查看数据库信息了。

总结

本次实验是对Fuzz绕过WAF的一次经典实例,借助burp工具进行抓包和攻击,得到不同的数据包,查看返回结果,进行绕过WAF获取用户信息的一次实战练习。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Burp Suite是一款常用的Web应用程序安全测试工具,其中的Fuzzing功能可以用于检测和利用SQL注入漏洞。SQL注入是一种常见的Web应用程序漏洞,攻击者可以通过构造恶意的SQL查询语句来绕过应用程序的身份验证和访问控制,甚至获取敏感数据。 在Burp Suite中使用Fuzzing功能进行SQL注入测试的步骤如下: 1. 配置目标:在Burp Suite中,选择要测试的目标应用程序,并配置代理设置,确保所有的流量都经过Burp Suite进行拦截和修改。 2. 构造注入点:在目标应用程序中找到可能存在SQL注入漏洞的参数或输入字段,并将其标记为注入点。可以使用Burp Suite的Intruder工具来自动识别和标记注入点。 3. 准备Payloads:准备一组恶意的SQL注入Payloads,这些Payloads将被插入到注入点中进行测试。Payloads可以包括常见的SQL注入语句、特殊字符、SQL函数等。 4. 配置Fuzzing:在Burp Suite的Intruder工具中,选择要进行Fuzzing的请求,并将注入点设置为Payload位置。将准备好的Payloads加载到Intruder中,并配置其他相关选项,如并发请求数、超时时间等。 5. 启动Fuzzing:启动Fuzzing过程,Burp Suite将自动发送带有不同Payloads的请求,并记录每个请求的响应。可以通过查看响应中的错误信息、时间延迟等来判断是否存在SQL注入漏洞。 6. 分析结果:根据Fuzzing的结果,分析每个请求的响应,查找异常或错误的迹象。如果发现响应中包含SQL错误信息、应用程序行为异常等,可能存在SQL注入漏洞。 需要注意的是,在进行SQL注入测试时,应该遵循合法和道德的原则,仅在授权范围内进行测试,并避免对生产环境造成任何损害。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炫彩@之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值