十七、服務(wù)端請求偽造
作者:Peter Yaworski
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
描述
服務(wù)端請求偽造抖仅,或者 SSRF坊夫,是一種類型砖第,它允許攻擊者使用目標(biāo)服務(wù)器來代表攻擊者自己執(zhí)行 HTTP 請求。這和 CSRF 類似环凿,因?yàn)閮蓚€(gè)漏洞都執(zhí)行了 HTTP 請求梧兼,而不被受害者察覺。在 SSRF 中智听,受害者是漏洞服務(wù)器羽杰,在 CSRF 中,它是用戶的瀏覽器到推。
這里的潛力非常大考赛,包括:
信息暴露,其中我們欺騙服務(wù)器來暴露關(guān)于自身的信息莉测,在示例 1 中使用 AWS EC2 元數(shù)據(jù)描述颜骤。
XSS,如果我們讓服務(wù)器渲染遠(yuǎn)程 HTML 文件捣卤,其中帶有 JavaScript忍抽。
示例
1. ESEA SSRF 和 AWS 元數(shù)據(jù)請求
難度:中
URL:https://play.esea.net/global/media_preview.php?url=
報(bào)告鏈接:http://buer.haus/2016/04/18/esea-server-side-request-forgery-and-querying-aws-meta-data/
報(bào)告日期:2016.4.18
獎(jiǎng)金:$1000
描述:
電子運(yùn)動(dòng)娛樂聯(lián)盟 (ESEA) 是一個(gè)電子運(yùn)動(dòng)視頻競技比賽的社區(qū),由 ESEA 建立董朝。最近他們啟動(dòng)了一個(gè)漏洞獎(jiǎng)勵(lì)計(jì)劃鸠项,Brett Buerhaus 在上面發(fā)現(xiàn)了一個(gè)不錯(cuò)的 SSRF 漏洞。
使用 Google Dorking子姜,Brett 搜索site:https://play.esea.net/ ext:php
祟绊。這讓 Google 在play.esea.net
域中搜索 PHP 文件。查詢結(jié)果包括https://play.esea.net/global/media_preview.php?url=
哥捕。
看看這個(gè) URL牧抽,似乎 ESEA 從外部站點(diǎn)渲染內(nèi)容。在尋找 SSRF 的時(shí)候扭弧,這是一個(gè)危險(xiǎn)標(biāo)志阎姥。像他描述的那樣,Brett 嘗試它自己的域名:https://play.esea.net/global/media_preview.php?url=http://ziot.org
鸽捻。但是沒有作用呼巴,結(jié)果,ESEA 尋找圖片文件御蒲,所以它嘗試包含圖片的載荷衣赶。首先使用 Google 作為域名,之后是它自己的厚满,https://play.esea.net/global/media_preview.php?url=http://ziot.org/1.png
府瞄。
成功了。
現(xiàn)在,這里真實(shí)的漏洞是遵馆,欺騙服務(wù)器渲染其它內(nèi)容鲸郊,而不是預(yù)設(shè)的圖片。在他的博文中货邓,Brett 描述了通常的技巧秆撮,例如使用空字符(%00
),額外的斜杠以及問號來繞過或欺騙后端换况。在它的例子中职辨,它向 URL 添加了?
:https://play.esea.net/global/media_preview.php?url=http://ziot.org/?1.png
。
它所做的就是將前面的文件路徑戈二,1.png
轉(zhuǎn)換為參數(shù)舒裤,并且不是實(shí)際要渲染的 URL 的一部分。因此觉吭,ESEA 渲染了它的頁面腾供。換句話說,它繞過了第一個(gè)測試的額外檢查亏栈。
現(xiàn)在台腥,這里你可以嘗試執(zhí)行 XSS 載荷宏赘,像他描述的那樣绒北。只需創(chuàng)建一個(gè)帶有 JavaScript 的簡單 HTML 頁面,讓站點(diǎn)渲染它察署,就這么簡單闷游。但是它更進(jìn)了一步。使用來自 Ben Sadeghipour 的輸入(在我的 YouTUbe 頻道和 Polyvore RCE 的 Hacking Pro Tips Interview #1 中提到過)贴汪,它測試了 AWS EC2 實(shí)例元數(shù)據(jù)的查詢脐往。
EC2 是 Amazon 的彈性計(jì)算云。它們提供了查詢自身的功能扳埂,通過它們的 IP业簿,來拉取關(guān)于實(shí)例的元數(shù)據(jù)。權(quán)限很明顯限制為實(shí)例自身阳懂,但是由于 Brett 能夠控制服務(wù)器從哪里加載內(nèi)容梅尤,它能夠使其調(diào)用自身并拉取元數(shù)據(jù)。
EC2 的文檔在這里:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2instance-metadata.html
岩调。這里是一些你可以抓取的敏感信息巷燥。
重要結(jié)論
Google Dorking 是一個(gè)不錯(cuò)的工具,它能在發(fā)現(xiàn)所有類型的可能利用時(shí)号枕,節(jié)省你的時(shí)間缰揪。如果你正在尋找 SSRF 漏洞,要留意任何在遠(yuǎn)程內(nèi)容中拉取的目標(biāo) URL葱淳。這里钝腺,它的標(biāo)志是
url=
抛姑。
其次,不要僅限于你的第一想法艳狐。Brett 完全能夠報(bào)告 XSS 載荷途戒,但是這不太深入。通過深入挖掘僵驰,它就能發(fā)現(xiàn)漏洞的真正價(jià)值喷斋。但是這樣做的時(shí)候,要小心不要越界蒜茴。
總結(jié)
服務(wù)端請求偽造在服務(wù)器可悲利用來代表攻擊者執(zhí)行請求時(shí)出現(xiàn)星爪。但是,并不是所有請求最終都能利用粉私。例如顽腾,由于站點(diǎn)允許你提供圖片的 URL,但它會(huì)復(fù)制并在自己站點(diǎn)上使用(就像上面的 ESEA 示例)诺核,并不意味站點(diǎn)存在漏洞抄肖。發(fā)現(xiàn)它們只是第一步,隨后你需要確認(rèn)它們的潛能窖杀。對于 ESEA漓摩,雖然站點(diǎn)尋找圖片文件,它并不驗(yàn)證收到的東西入客,并且可以用于渲染惡意 XSS管毙,以及對自己的 EC2 元數(shù)據(jù)執(zhí)行 HTTP 請求。