記我在HackerOne上參與的一次漏洞眾測邀請項目
這是一件關於我參與Hackerone平台某漏洞邀請項目的事,在此我要感謝該項目發起公司,他們友善的態度、及時的漏洞修復和獎金髮放效率,讓所有存在的提交漏洞都能在7天之內有所處理解決,我個人非常榮幸能參與這樣的漏洞眾測項目。
我是一個漏洞挖掘小白,現階段來說,獎金並不是我參與漏洞眾測項目的主要原因,目前我在Hackerone上發現的漏洞已達85個,聲譽值也超過2600多分並呈快速上升趨勢。在Hackerone上,我有時一星期可收到4到5個邀請項目。大家知道,邀請項目對「漏洞賞金獵人」的提高非常重要,我個人就從這些邀請項目中學到了很多非訓練平台上的實際挖掘漏洞經驗,這非常能起到鍛煉作用。
由於是私密性質的邀請項目,所以抱歉在下文中我提到的一些發現,並不代表對漏洞細節本身的公開披露,其僅只是方法介紹和總結,我總不能過河拆橋,還望大家理解。
介紹
在與項目發起公司進行接觸聯繫之後,在朋友@Geekboy的引薦下我順利入圍參與了該項目。最終,我成功發現了目標範圍站點多個RCE漏洞、SQL注入漏洞以及賬戶劫持漏洞,成果還算不錯。
第一個RCE漏洞發現
針對一個子域名目標,我在用Dirb爆目錄時發現了其.git目錄,接著我用gitpillage深入探測時,又發現了很多有意思的文件:
server.conf,這足夠說明問題的了,直接看源碼,發現PHP環境是由Zend Studio 5.5 集成開發的:
接下來在源碼分析中,我發現了多個對exec()的調用,運行機制用它來執行一些系統命令。深入分析該調用機制後,我又注意到其中一個調用的POST參數並未被過濾審核,其代碼如下:
你猜怎麼著,其中竟然可關聯到一個遠程代碼執行漏洞(RCE)!
於是乎,我美滋滋地上報了這個漏洞。
漏洞一發不可收拾
幾個星期之後,我又在目標站點上發現了一些CORS、CSRF、源碼泄露和速率限制漏洞,而且其主站上竟然還存在一個SQL注入漏洞:
1個月後,我再次對上述發現漏洞進行了復現檢測,它們確實已經被完美修復了。但我又在其它地方發現了3個RCE漏洞。其中一個RCE漏洞需要在輸入中具備以下3個參數值:
該漏洞涉及腳本會把在路徑
下創建的文件內容進行寫入操作,但….,這就是一個隱藏後門啊!
從一個RCE漏洞到另一個RCE漏洞
當我遠程連接到測試目標站點之後,發現其服務中包含了 ImageMagick圖片處理功能,所以,我理所應當地檢查了其ImageMagick的版本:
可能大家都知道,ImageMagick在6.9.3-9之前的版本都存在包含RCE在內的多種漏洞,當然,幸運的是,該站點伺服器也不可避免地淪陷了:
從Javascript文件中發現漏洞
之前,我看過@zseano發布的如何從Javascript文件中挖掘漏洞的視頻後,我就嘗試著自行編寫了一些從源碼中提取目標服務端和其它有用信息的小工具。因此,在這裡,我把測試站點的所有JS文件進行了下載,然後用我的小工具進行了一番分析,在數百個服務端的閃現中,其中一個映入了我的眼帘:
/[REDACTED].php?[REDACTED]=[REDACTED]&template=[REDACTED].tpl
前端開發者們都明白,.tpl是用於HTML代碼中的模塊Template文件,它的文件名能作為參數使用嗎?那麼,我先來試試/etc/passwd值,一試不得了:
一開始,我認為這是一個本地文件包含漏洞(Local File Inclusion),所以我嘗試用fimap、dotdotpwn或Kadimus等工具來把它提權為RCE漏洞,但由於不清楚該應用的具體路徑,所以也就不能包含調用其它PHP文件。為保持漏洞的有效性,我及時提交了該漏洞。
但第二天,我看到漏洞還處於分類未修復狀態時,我一下腦洞大開,Ding Dang,何不嘗試一下包含調用該PHP服務端本身呢?就像這樣:
/the_vulnerable_script.php?[REDACTED]=[REDACTED]&template=the_vulnerable_script.php
意想不到的是,我就這樣得到了整個未解析執行的源碼文件,所以,本質上來說,這就是一個本地文件泄露漏洞( Local File Disclosure)。
在對不同文件的挖刨之後,我找到了一些包含資料庫憑據、API密鑰和第三方服務信息的配置文件,另外,我還發現了一些啟動載入文件(Autoload file),它包含了一些認證或文件載入信息,如下:
總之,我可以獲取了目標站點上該項應用服務的所有源碼,雖然不像RCE威脅巨大,但也足夠說明問題,因為,我能通過工具把這些源碼文件進行抓取:
在稍微地進行了一些驗證之後,我就及時停止了深入測試,上報了漏洞。
綜合利用
用上述發現的漏洞,結合該目標站點的其它應用,我在其中又發現了多個SQL注入漏洞,和4個XSS,以及以下這個賬戶劫持漏洞:
在該請求中,如果把我的email地址換成他人用戶的email地址,就能用請求包中設置包含的密碼,替換更改他人的賬戶密碼,整個過程不需要任何驗證機制。
*參考來源:blog,FreeBuf小編clouds編譯,轉載請註明來自FreeBuf.COM
※將REMnux部署到雲上,在雲上完成惡意軟體的逆向分析
※年度盤點 | 安全測試者偏愛的安全測試工具
TAG:FreeBuf |