Web Hacking 101 中文版 十七、服务端请求伪造
十七、服務端請求偽造
作者:Peter Yaworski
譯者:飛龍
協議:CC BY-NC-SA 4.0
描述
服務端請求偽造,或者 SSRF,是一種類型,它允許攻擊者使用目標服務器來代表攻擊者自己執行 HTTP 請求。這和 CSRF 類似,因為兩個漏洞都執行了 HTTP 請求,而不被受害者察覺。在 SSRF 中,受害者是漏洞服務器,在 CSRF 中,它是用戶的瀏覽器。
這里的潛力非常大,包括:
信息暴露,其中我們欺騙服務器來暴露關于自身的信息,在示例 1 中使用 AWS EC2 元數據描述。
XSS,如果我們讓服務器渲染遠程 HTML 文件,其中帶有 JavaScript。
示例
1. ESEA SSRF 和 AWS 元數據請求
難度:中
URL:https://play.esea.net/global/media_preview.php?url=
報告鏈接:http://buer.haus/2016/04/18/esea-server-side-request-forgery-and-querying-aws-meta-data/
報告日期:2016.4.18
獎金:$1000
描述:
電子運動娛樂聯盟 (ESEA) 是一個電子運動視頻競技比賽的社區,由 ESEA 建立。最近他們啟動了一個漏洞獎勵計劃,Brett Buerhaus 在上面發現了一個不錯的 SSRF 漏洞。
使用 Google Dorking,Brett 搜索site:https://play.esea.net/ ext:php。這讓 Google 在play.esea.net域中搜索 PHP 文件。查詢結果包括https://play.esea.net/global/media_preview.php?url=。
看看這個 URL,似乎 ESEA 從外部站點渲染內容。在尋找 SSRF 的時候,這是一個危險標志。像他描述的那樣,Brett 嘗試它自己的域名:https://play.esea.net/global/media_preview.php?url=http://ziot.org。但是沒有作用,結果,ESEA 尋找圖片文件,所以它嘗試包含圖片的載荷。首先使用 Google 作為域名,之后是它自己的,https://play.esea.net/global/media_preview.php?url=http://ziot.org/1.png。
成功了。
現在,這里真實的漏洞是,欺騙服務器渲染其它內容,而不是預設的圖片。在他的博文中,Brett 描述了通常的技巧,例如使用空字符(%00),額外的斜杠以及問號來繞過或欺騙后端。在它的例子中,它向 URL 添加了?:https://play.esea.net/global/media_preview.php?url=http://ziot.org/?1.png。
它所做的就是將前面的文件路徑,1.png轉換為參數,并且不是實際要渲染的 URL 的一部分。因此,ESEA 渲染了它的頁面。換句話說,它繞過了第一個測試的額外檢查。
現在,這里你可以嘗試執行 XSS 載荷,像他描述的那樣。只需創建一個帶有 JavaScript 的簡單 HTML 頁面,讓站點渲染它,就這么簡單。但是它更進了一步。使用來自 Ben Sadeghipour 的輸入(在我的 YouTUbe 頻道和 Polyvore RCE 的 Hacking Pro Tips Interview #1 中提到過),它測試了 AWS EC2 實例元數據的查詢。
EC2 是 Amazon 的彈性計算云。它們提供了查詢自身的功能,通過它們的 IP,來拉取關于實例的元數據。權限很明顯限制為實例自身,但是由于 Brett 能夠控制服務器從哪里加載內容,它能夠使其調用自身并拉取元數據。
EC2 的文檔在這里:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2instance-metadata.html。這里是一些你可以抓取的敏感信息。
重要結論
Google Dorking 是一個不錯的工具,它能在發現所有類型的可能利用時,節省你的時間。如果你正在尋找 SSRF 漏洞,要留意任何在遠程內容中拉取的目標 URL。這里,它的標志是url=。
其次,不要僅限于你的第一想法。Brett 完全能夠報告 XSS 載荷,但是這不太深入。通過深入挖掘,它就能發現漏洞的真正價值。但是這樣做的時候,要小心不要越界。
總結
服務端請求偽造在服務器可悲利用來代表攻擊者執行請求時出現。但是,并不是所有請求最終都能利用。例如,由于站點允許你提供圖片的 URL,但它會復制并在自己站點上使用(就像上面的 ESEA 示例),并不意味站點存在漏洞。發現它們只是第一步,隨后你需要確認它們的潛能。對于 ESEA,雖然站點尋找圖片文件,它并不驗證收到的東西,并且可以用于渲染惡意 XSS,以及對自己的 EC2 元數據執行 HTTP 請求。
總結
以上是生活随笔為你收集整理的Web Hacking 101 中文版 十七、服务端请求伪造的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 破壁机怎么打豆浆没有腥味
- 下一篇: Bzoj1029 [JSOI2007]建