怎样进行DNSLOG平台搭建,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
1前言
,,,,DNSLOG是一种回显机制,常用于在某些漏洞无法回显但可以发起DNS请求的情况下,利用此方式外带数据,以解决某些漏洞由于无回显而难以利用的问题。主要利用场景有SQL盲注,无回显的命令执行,无回显的SSRF。本文介绍一种搭建DNSLOG平台的方法,旨在为渗透测试提供一些帮助。
2前期准备
,,,,,,一个域名,一台vps
,,,,,,本文使用的是:阿里云购买的域名和云服务器ECS
,,,,,,域名:example.icu
,,,,,,vps的ip: 100.100.100.100
3实验过程
3.1添加DNS解析
,,,,,,在云解析DNS处添加一条一记录和一条NS记录,如图所示:
3.3 DNSLOG代码
,,,,,,dnslog.py
,,,,,,运行在python2下,无需安装依赖包。
,,,,,,# !/usr/bin/env python
,,,,,,# - * -编码:utf - 8 - * -
,,,,,,进口SocketServer
,,,,,,进口struct
,,,,,,进口套接字socketlib
,,,,,,# DNS查询
,,,,,,类SinDNSQuery:
,,,,,,,,def __init__(自我、数据):
,,,,,,,,,,,,i=1
,,,,,,,,,,,,self.name=& # 39; & # 39;
,,,,,,,,,,,,而真正:
,,,,,,,,,,,,,,,,d=奥德(数据[我])
,,,,,,,,,,,,,,,,,,如果d==0:
,,,,,,,,,,,,,,,,,,,,,,打破;
,,,,,,,,,,,,,,,,,,如果d & lt;32:
,,,,,,,,,,,,,,,,,,,,self.name=self.name + & # 39;强生# 39;
,,,,,,,,,,,,,,,,其他:
,,,,,,,,,,,,,,,,,,,,,,self.name=self.name +装备(d)
,,,,,,,,,,,,,,,,,,我+ 1=
,,,,,,,,,,,,自我。querybytes=数据[0 i + 1):
,,,,,,,,,,,,(self.type self.classify)=struct.unpack(& # 39;在hh # 39;,数据[我+ 1 + 5])
,,,,,,,,,,,,,自我。len=我+ 5
,,,,,,,,,def getbytes(自我):
,,,,,,,,,,,,,回归自我。querybytes + struct.pack(& # 39;在hh # 39;,自我。类型,self.classify)
,,,,,,# DNS回答RRS
,,,,,,类SinDNSAnswer:
,,,,,,,,,def __init__(自我、ip):
,,,,,,,,,,,,,49164年,self.name=
,,,,,,,,,,,,,自我。类型=1
,,,,,,,,,,,,,自我。分类=1
,,,,,,,,,,,,自我。timetolive=190
,,,,,,,,,,,,,的自己。datalength=4
,,,,,,,,,,,,自我。ip=ip
,,,,,,,,,def getbytes(自我):
,,,,,,,,,,,,,res=struct.pack(& # 39;祝辞HHHLH& # 39;, self.name,自我。类型、自我。分类、self.timetolive self.datalength)
,,,,,,,,,,,,s=self.ip.split(& # 39;强生# 39;)
,,,,,,,,,,,,null