*本文中涉及到的相關漏洞已報送廠商並得到修復,本文僅限技術研究與討論,嚴禁用於非法用途,否則產生的一切後果自行承擔。
該Writeup是作者在邀請測試項目中發現的,在上傳文件的文件名處(filename)的一個時間延遲盲注漏洞,這種姿勢相對少見,分享在此希望能對大家起到借鑑學習作用。以下是作者的發現過程。
本月初,我受邀參與了HackerOne平臺某廠商的一個私密衆測項目,由於此前我有些朋友也做過該廠商的衆測,所以我就向他們徵詢該廠商相關係統應用的大概情況,以便提前瞭解其中存在的難點和會遇到的坑。
從註冊頁面入手發現上傳功能
在和朋友@reefbr聊過之後,他發給了我目標廠商某重要域名下的一個會員註冊頁面,剛好該註冊頁面在本次測試範圍之內。現在要做的就是,實際註冊測試一下吧。整個註冊過程都很正常,一會之後,我留的註冊郵箱就收到了一封包含訪問Web應用憑據的郵件。
以會員身份登錄目標Web應用之後,我發現其中存在一個文件上傳功能。於是,我通過隨機文件上傳進行測試看看其中的安全限制,發現:
上傳只接受PDF格式文檔
Web應用後端部署有殺毒軟件AV
經過一番分析之後,我覺得該上傳點只接收類似”filename.pdf”的PDF格式文檔,我曾嘗試繞過這種文件格式限制措施,雖然某些條件下可以成功上傳其它格式文件,但上傳文件卻不能在服務端有效執行,所以,我轉向了其它功能點的測試。
記得以前在做滲透測試時,我曾遇到過一個把文件名都包含存儲到數據庫中的Web應用,那次,我通過構造其文件名參數,成功發現了其基於時間差盲注(Time-Based Blind SQL)的漏洞。那麼,這個Web應用是否存在該漏洞呢?試試看。
BurpSuite抓包分析
用Burp Proxy代理抓包分析HTTP請求,點擊上傳按鈕後,把其中的文件名filename值更改爲以下紅框內的值:
注意:以上filename值情況下,當我不加最後的.pdf後綴名發送請求時,目標Web應用是拒絕接收的。探測發現,目標Web應用之後部署有Cloudflare WAF,所以我的好多測試都被這個WAF給阻擋了,返回的都是”Access Denied” 消息。
我突然想到朋友@reefbr說過他在該廠商之間的測試項目中,曾上報過一個Cloudflare的繞過漏洞,這是一個由配置問題導致的問題,所以,我剛好可以拿來試試看,這一試,我就發現了一個SQL盲注漏洞了。什麼都不說了,直接上POC吧。
POC
利用上述的文件名構造方式,結合Cloudflare繞過問題,我發起了以下請求,注意看其中的時間延遲sleep:
以上是sleep(0)無延遲的情況,請求需要1380毫秒。現在換成sleep(10)延遲10秒,即10000毫秒,看看:
增加10000毫秒後,確實變成11350毫秒了。現在,再增加成20秒,即20000毫秒:
最後時間確實在之前基礎上增加了20000毫秒,變成了21358毫秒了。廠商團隊應該清楚問題實質了吧,我們再增加一點延遲時間看看:
那麼,這裏明顯存在一個盲注漏洞。由於目標系統負責處理大量的個人身份信息(PII),所以,如果攻擊者利用這種盲注漏洞對系統中的數據進行提取,將會導致大量的敏感信息泄露,也是因爲此種原因,我才採用了破壞力稍低的時間延遲注入方法來說明漏洞問題。
上報進程
漏洞初報
漏洞分類
漏洞修復
賞金獎勵
*參考來源:jspin,clouds編譯,轉載請註明來自FreeBuf.COM