歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

使用Sboxr自動發現和利用DOM(客戶端)XSS漏洞

來源:本站整理 作者:佚名 時間:2019-04-24 TAG: 我要投稿

這一系列的文章將向你展示如何在單頁或富JavaScript的應用程序上識別DOM XSS的問題。作為示例,我們將在DOM XSS playground(https://domgo.at)上解決10個練習題目,并為檢測到的問題創建了簡單的概念證明漏洞。
這篇文章的內容涵蓋了前兩個練習的設置說明和解決方案。剩余的練習將在我們發布的其他文章中提到。我們還將發布一個gitbook,其中包含了Appsecco書籍門戶網站上所有練習的解決方案。
更新:gitbook會掛在我們的圖書門戶網站上—— https://appsecco.com/books/automating-discovery-and-exploiting-dom-client-xss/
什么是DOM XSS / Client XSS
縱觀Cross Site Scripting漏洞的歷史,在測試人員和開發人員的心中都占有特殊的地位。使用標準檢的測技術很難檢測到這種XSS的變體,并且相對的來說,這種漏洞的變體很容易出現在大型的JS應用程序中。
OWASP將其定義為XSS的漏洞類型,其中的原因是由于這種漏洞是在受害者瀏覽器中通過原始客戶端腳本修改DOM環境而執行攻擊有效載荷,因此客戶端代碼以一種 “意外” 的方式運行。也就是說,頁面本身(即HTTP響應)不會改變,但由于DOM環境中發生了惡意的修改,頁面中包含的客戶端代碼執行方式發生了改變。
簡而言之,當來自DOM源(如location.hash)的用戶輸入發現它賦值到了DOM接收器(如HTMLElement.innerHTML)時,就會發生客戶端XSS漏洞。 DOM中有多個源,也可以有多個接收器,具體取決于JS的復雜程度和其所實現的功能。
通過手動的方式或代碼審查來檢測DOM XSS可能會花費大量的時間。一種可行的技術是通過一個工具從服務器發送流量,該工具可以注入自己的JS來監控DOM變化,只需瀏覽網站即可枚舉所有源和接收器。
進入Sboxr
Sboxr是一個測試和調試Web應用程序的工具,尤其是大型的JavaScript應用程序。 Sboxr通過在瀏覽器和服務器之間的流量中注入它自己的JS代碼(稱為DOM傳感器)來工作,該代碼在使用站點時監視JS的使用情況,源,接收器,變量分配,函數調用等。然后,它通過其Web控制臺顯示用戶控制的數據在數據最終出現在執行接收器中時所采用的各種流的視圖。
設置Sboxr和Chrome
我們使用Ubuntu 18.04來設置我們的攻擊工具鏈以及Chrome 72。以下步驟將幫助你進行設置:
1、從供應商網站獲取Sboxr的許可副本 – https://sboxr.com/
2、運行Sboxr需要.NET 核心 SDK,可以按照這里的(https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-current)說明在Linux上進行安裝。對于Windows系統,請按照這個(https://dotnet.microsoft.com/download)說明進行操作即可。
3、安裝完成后,通過運行dotnet Sboxr.dll啟動Sboxr
4、程序啟動后會在端口3333 http://localhost:3333/console 上訪問到Sboxr Web界面(用于管理和分析發現的問題),端口3331是一個代理端口。
5、如果你希望鏈接Burp或其他攔截代理,請瀏覽并單擊HTTP Sensor以設置上游代理(例如Burp或OWASP ZAP)的IP地址和端口。

設置完成后,我們需要配置瀏覽器向Sboxr發送流量(然后可以轉發到Burp或OWASP ZAP)。

Sboxr目前還不支持SOCKS代理,因此你需要使用Burp或OWASP ZAP進行鏈接以阻止流量。
ED_:D_=>HTTPS站點可能無法與Sboxr一起正常工作,因為我們沒有應該要導入的證書。因此,我們使用–ignore-certificate-errors參數啟動Chrome(我們注意到Firefox的about:config中的禁用HSTS檢查的network.stricttransportsecurity.preloadlist選項有一些問題,因此我們暫時會一直使用Chrome)。
在Linux上,使用以下命令啟動Chrome:
mkdir -p ~/.chrome;/opt/google/chrome/chrome -incognito --ignore-certificate-errors --proxy-server=http=http://localhost:3331\;https=http://localhost:3331 --user-data-dir=~/.chrome
在Windows系統上,可以執行以下操作(假設你的安裝路徑也是標準的安裝路徑)
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -incognito --ignore-certificate-errors --proxy-server=http=http://localhost:3331;https=http://localhost:3331 --user-data-dir="C:\Users\%Username%\AppData\Local\Temp\TestChromeProxy"
\Program Files(x86)\Google \Chrome \Application \chrome.exe”-incognito --ignore-certificate-errors --proxy-server = http = http:// localhost:3331; https = http://localhost:3331 --user-data-dir =“C:\Users \%Username%\AppData \Local \Temp \TestChromeProxy”

[1] [2] [3] [4] [5]  下一頁

【聲明】:黑吧安全網(http://www.pcpbjo.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        云南快乐十分前三电视