從外掛入手:挖掘流行框架的“後入式BUG”
遇WordPress頭大?讓我們從外掛入手!
當任務目標是一個wordpress站點的時候,是否讓你感到過頭大?wpscan掃了半天,卻沒有任何有利用價值的bug,這時候就拍拍屁股走人了?
流行框架一般不會有什麼太大的漏洞,頂多根據少有的特性介面找到一些可以利用的資料,比如使用者的基礎資訊:ID、名稱、郵箱等,為潛在的爆破登陸做輕微的貢獻。
NO,這時候更應該深入,越是掃不出的地方,越有可能發現有趣的點。而最容易出現非官方,有bug的地方就是外掛、自定義外掛、第三方功能了。
因此,在面對大型框架時,我們的入手目標就是“一般工具掃不出、普遍站點不一定有,根據管理員目的後來新增的,但混入站點擁有一定許可權和功能的”漏洞點。
也就是去尋找筆者所戲稱的“後入式BUG”。
尋找plugins的蛛絲馬跡
總有人說,拿到一個目標是標準化框架,讓人看著就覺得沒什麼容易下手測試的地方。其實測試的地方是有的,大佬和小白們的方式卻略有不同。
1.工具掃描
使用工具掃描總是最輕鬆的,基礎資訊刺探、簡單的資產挖掘,甚至某些心大未修復的撿漏、備份檔案暴露,特殊路徑挖掘等,都能靠掃描器就直接掃出來。但輕鬆是一方面,另一方面你應該也意識到了,使用工具拼的只是頻寬和時間,你的任務入手時間,掃描持續時間,掃描完成程度,規則廣泛程度,報告書寫速度,都會影響“你與別人誰能拿到獎金”的結果。而初入安全行業,偷懶不進去不學習的人,都停步在了這裡。
2.手工審計
掃描撿漏之餘,一般才是大牛們開始發力的真正比武場。SRC排名靠前的師傅,據我認識的就有幾個已經自己寫出自動化開始做專案了。你用“開源掃描器+手工複測+瘋狂寫報告”跟他們拼?還是歇歇吧哈哈,他們早直接用SRC的API提交了,從SCAN->TEST->POC->GETSHELL->REPORT一條龍服務。
從前我不相信這個世界有龍,直到我看到了大佬們自己寫的“日站一條龍”框架……而大佬們在搶走了第一波飯菜的時候,順手也拿起勺子開始喝湯了。
事實說話,舉例說明
大型開源框架很多,能使用外掛的也挺多的。比如WordPress的站點這網上一搜一大把,那我們就拿WordPress舉例說明吧。
首先隨便找個WordPress的網站,我們就到網上搜一個隨便看看吧。
按f12掛個黑頁,哦不,按f12看看站點目前引入的檔案,和現在的流量情況,找找API互動的endpoint以及現在直接能體現出來的error有沒有可以利用的地方。
可以看見,這個站點使用了諸多的外掛,某些插接因為太小眾,並沒被WPScan掃出來,即便掃出來了,或許規則庫裡也沒有統計到有可利用的漏洞,這時候我們就可以找找這幾個外掛的原始碼著手審計。而審計之前,我們也可以在許可權允許的頁面,順手測試一下這些外掛的功能,說不定就有直觀的能黑盒測試出來的bug呢?
可以看到,這個站點的PM功能(私信功能)出現了許多奇怪的error,看型別是xhr,流量中跟隨輸入拼寫一直在遞增。貌似是查詢使用者的?不如直接找到這個API,嘗試手工測試。
可以看到,單單是黑盒測試,就發現此處API存在一個SQL%E6%B3%A8%E5%85%A5/">SQL注入點。
手工複測找到完美閉合方式後,調整速率再使用sqlmap確定一下,可喜可賀,確實找到一個注入點,型別Boolean & Time based。留好截圖,組織一下語言,把前後發現、複測條件、payload全附上,一篇價值2k的高危漏洞報告就出爐啦!
這裡在form裡呼叫了javascript:autosuggest()來自動補全使用者資訊。
再看看補全使用者資訊怎麼實現的,我們看看原始碼,果不其然,在這段程式碼中就存在一個教科書般的SQLinjection漏洞。
站點的開發在上線時使用了外掛,卻沒經過嚴格審計,而選擇了信任外掛,實屬失誤。。
在剛剛的error資訊中,隱約記得還看到了innerHtml()的呼叫,這可是容易出現xss的地方啊!當然,修復方式建議直接<?php die();?>了,也就不用考慮這個XSS了。。
年久失修遇見雙管齊下
就在寫文章的時候,看到上傳圖片都是直接傳到CDN的圖床了,直覺告訴我這裡可能出現問題,那是不是圖床的第三方SDK也會有洞呢?我們來找找看。
站點使用的是upyun-editor的上傳程式碼,其中有個類似於demo的檔案引起了我的注意。
這裡看到程式碼,說不定可以造成反射XSS,那麼我們直接POST到站點看看。
恩。。看來是正常解析了。但是Chrome下測試,會被xss defense的內部檢查器攔截下來。。這可咋整。。
檢查發現站點的返回還與原始碼本地測試的略有不同,並且既然有兩個輸入框,可不可以用組合方式繞過Chrome自帶的XSS防護呢?
我們在第一個輸入框填 <script>第2個編輯器的值=0;
第二個填 ;alert(1);//
測試一下?
打完收官~ 雖低危100元,挖到新姿勢還有獎金,想想也足以。
總結
不管是做專案,還是企業內部測試,使用掃描器進行資訊收集永遠只是個開始,而主要精力應該放在加深對框架理解與功能測試跟進上。
框架是否有外來程式碼?是否使用三方外掛?有沒有其他子域?
沒有挖不到的洞,只有不努力的黑客。
加油吧,各位少年~