????????SSRF(Server-Side Request Forgery:服務(wù)器端請求偽造) 是一種由攻擊者構(gòu)造形成由服務(wù)端發(fā)起請求的一個安全漏洞吐限。一般情況下凭豪,SSRF攻擊的目標(biāo)是從外網(wǎng)無法訪問的內(nèi)部系統(tǒng)召锈。(正是因為它是由服務(wù)端發(fā)起的着帽,所以它能夠請求到與它相連而與外網(wǎng)隔離的內(nèi)部系統(tǒng))
????????SSRF 形成的原因大都是由于服務(wù)端提供了從其他服務(wù)器應(yīng)用獲取數(shù)據(jù)的功能且沒有對目標(biāo)地址做過濾與限制携悯。比如從指定URL地址獲取網(wǎng)頁文本內(nèi)容祭芦,加載指定地址的圖片,下載等等憔鬼。
SSRF 漏洞的尋找
一龟劲、從WEB功能上尋找
????????我們從上面的概述可以看出胃夏,SSRF是由于服務(wù)端獲取其他服務(wù)器的相關(guān)信息的功能中形成的,因此我們大可以列舉幾種在web 應(yīng)用中常見的從服務(wù)端獲取其他服務(wù)器信息的的功能昌跌。
1)分享:通過URL地址分享網(wǎng)頁內(nèi)容
????????早期分享應(yīng)用中仰禀,為了更好的提供用戶體驗,WEB應(yīng)用在分享功能中蚕愤,通常會獲取目標(biāo)URL地址網(wǎng)頁內(nèi)容中的<tilte></title>標(biāo)簽或者<meta name="description" content=“”/>標(biāo)簽中content的文本內(nèi)容作為顯示以提供更好的用戶體驗答恶。例如人人網(wǎng)分享功能中:
http://widget.renren.com/*****?resourceUrl=https://www.sobug.com
????????通過目標(biāo)URL地址獲取了title標(biāo)簽和相關(guān)文本內(nèi)容。而如果在此功能中沒有對目標(biāo)地址的范圍做過濾與限制則就存在著SSRF漏洞萍诱。根尋這個功能悬嗓,我們可以發(fā)現(xiàn)許多互聯(lián)網(wǎng)公司都有著這樣的功能,下面是我從百度分享集成的截圖如下:
????????從國內(nèi)某漏洞提交平臺上提交的SSRF漏洞裕坊,可以發(fā)現(xiàn)包括淘寶烫扼、百度、新浪等國內(nèi)知名公司都曾被發(fā)現(xiàn)過分享功能上存在SSRF的漏洞問題碍庵。
2)轉(zhuǎn)碼服務(wù):通過URL地址把原地址的網(wǎng)頁內(nèi)容調(diào)優(yōu)使其適合手機屏幕瀏覽
????????由于手機屏幕大小的關(guān)系映企,直接瀏覽網(wǎng)頁內(nèi)容的時候會造成許多不便,因此有些公司提供了轉(zhuǎn)碼功能静浴,把網(wǎng)頁內(nèi)容通過相關(guān)手段轉(zhuǎn)為適合手機屏幕瀏覽的樣式堰氓。例如百度、騰訊苹享、搜狗等公司都有提供在線轉(zhuǎn)碼服務(wù)双絮。
3)在線翻譯:通過URL地址翻譯對應(yīng)文本的內(nèi)容。提供此功能的國內(nèi)公司有百度得问、有道等
4)圖片加載與下載:通過URL地址加載或下載圖片
????????圖片加載遠程圖片地址此功能用到的地方很多囤攀,但大多都是比較隱秘,比如在有些公司中的加載自家圖片服務(wù)器上的圖片用于展示宫纬。(此處可能會有人有疑問焚挠,為什么加載圖片服務(wù)器上的圖片也會有問題,直接使用img標(biāo)簽不就好了漓骚? 蝌衔,沒錯是這樣,但是開發(fā)者為了有更好的用戶體驗通常對圖片做些微小調(diào)整例如加水印蝌蹂、壓縮等噩斟,所以就可能造成SSRF問題)。
5)圖片孤个、文章收藏功能
????????此處的圖片剃允、文章收藏中的文章收藏就類似于功能一、分享功能中獲取URL地址中title以及文本的內(nèi)容作為顯示,目的還是為了更好的用戶體驗斥废,而圖片收藏就類似于功能四覆享、圖片加載。
6)未公開的api實現(xiàn)以及其他調(diào)用URL的功能
????????此處類似的功能有360提供的網(wǎng)站評分营袜,以及有些網(wǎng)站通過api獲取遠程地址xml文件來加載內(nèi)容。
????????在這些功能中除了翻譯和轉(zhuǎn)碼服務(wù)為公共服務(wù)丑罪,其他功能均有可能在企業(yè)應(yīng)用開發(fā)過程中遇到荚板。
二、從URL關(guān)鍵字中尋找
????????在對功能上存在SSRF漏洞中URL地址特征的觀察吩屹,通過我一段時間的收集跪另,大致有以下關(guān)鍵字:
share
wap
url
link
src
source
target
u
3g
display
sourceURl
imageURL
domain
...
如果利用google 語法加上這些關(guān)鍵字去尋找SSRF漏洞,耐心的驗證煤搜,現(xiàn)在還是可以找到存在的SSRF漏洞免绿。
SSRF 漏洞的驗證
1)基本判斷(排除法)
例如:
http://www.douban.com/***/service?image=http://www.baidu.com/img/bd_logo1.png
排除法一:
????????你可以直接右鍵圖片,在新窗口打開圖片擦盾,如果是瀏覽器上URL地址欄是http://www.baidu.com/img/bd_logo1.png嘲驾,說明不存在SSRF漏洞。
排除法二:
????????你可以使用burpsuite等抓包工具來判斷是否不是SSRF迹卢,首先SSRF是由服務(wù)端發(fā)起的請求辽故,因此在加載圖片的時候,是由服務(wù)端發(fā)起的腐碱,所以在我們本地瀏覽器的請求中就不應(yīng)該存在圖片的請求誊垢,在此例子中,如果刷新當(dāng)前頁面症见,有如下請求喂走,則可判斷不是SSRF。(前提設(shè)置burpsuite截斷圖片的請求谋作,默認是放行的)
此處說明下芋肠,為什么這邊用排除法來判斷是否存在SSRF,舉個例子:
http://read.*******.com/image?imageUrl=http://www.baidu.com/img/bd_logo1.png
????????現(xiàn)在大多數(shù)修復(fù)SSRF的方法基本都是區(qū)分內(nèi)外網(wǎng)來做限制(暫不考慮利用此問題來發(fā)起請求遵蚜,攻擊其他網(wǎng)站业栅,從而隱藏攻擊者IP,防止此問題就要做請求的地址的白名單了)谬晕,如果我們請求 :
http://read.******.com/image?imageUrl=http://10.10.10.1/favicon.ico
????????而沒有內(nèi)容顯示碘裕,我們是判斷這個點不存在SSRF漏洞,還是http://10.10.10.1/favicon.ico這個地址被過濾了攒钳,還是http://10.10.10.1/favicon.ico這個地址的圖片文件不存在帮孔,如果我們事先不知道http://10.10.10.1/favicon.ico這個地址的文件是否存在的時候是判斷不出來是哪個原因的,所以我們采用排除法。
2)實例驗證
????????經(jīng)過簡單的排除驗證之后文兢,我們就要驗證看看此URL是否可以來請求對應(yīng)的內(nèi)網(wǎng)地址晤斩。在此例子中,首先我們要獲取內(nèi)網(wǎng)存在HTTP服務(wù)且存在favicon.ico文件的地址姆坚,才能驗證是否是SSRF漏洞澳泵。
找存在HTTP服務(wù)的內(nèi)網(wǎng)地址:
一、從漏洞平臺中的歷史漏洞尋找泄漏的存在web應(yīng)用內(nèi)網(wǎng)地址
二兼呵、通過二級域名暴力猜解工具模糊猜測內(nèi)網(wǎng)地址
example:ping xx.xx.com.cn
可以推測10.215.x.x 此段就有很大的可能: http://10.215.x.x/favicon.ico 存在兔辅。
????????在舉一個特殊的例子來說明:
http://fanyi.baidu.com/transpage?query=http://www.baidu.com/s?wd=ip&source=url&ie=utf8&from=auto&to=zh&render=1
????????
????????此處得到的IP 不是我所在地址使用的IP,因此可以判斷此處是由服務(wù)器發(fā)起的http://www.baidu.com/s?wd=ip 請求得到的地址击喂,自然是內(nèi)部邏輯中發(fā)起請求的服務(wù)器的外網(wǎng)地址(為什么這么說呢维苔,因為發(fā)起的請求的不一定是fanyi.baidu.com,而是內(nèi)部其他服務(wù)器),那么此處是不是SSRF懂昂,能形成危害嗎介时? 嚴(yán)格來說此處是SSRF,但是百度已經(jīng)做過了過濾處理凌彬,因此形成不了探測內(nèi)網(wǎng)的危害沸柔。
SSRF 漏洞中URL地址過濾的繞過
1)http://www.baidu.com@10.10.10.10與http://10.10.10.10 請求是相同的
此腳本訪問請求得到的內(nèi)容都是www.baidu.com的內(nèi)容。
2)ip地址轉(zhuǎn)換成進制來訪問
115.239.210.26 = 16373751032
????????此腳本解析的地址都是 115.239.210.26铲敛,也可以使用ping 獲取解析地址:
????????如果WEB服務(wù)簡單的過濾參數(shù)中獲取的URL地址勉失,沒有判斷真正訪問的地址,是有可能被此兩種方法繞過的原探。