當前位置:
首頁 > 新聞 > 從插件入手:挖掘WordPress站點的「後入式BUG」

從插件入手:挖掘WordPress站點的「後入式BUG」

前言


當任務目標是一個wordpress站點的時候,是否讓你感到過頭大?wpscan掃了半天,卻沒有任何有利用價值的bug,這時候就拍拍屁股走人了?



遇WordPress頭大?讓我們從插件入手!

流行框架一般不會有什麼太大的漏洞,頂多根據少有的特性介面找到一些可以利用的數據,比如用戶的基礎信息: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注入點。



手工複測找到完美閉合方式後,調整速率再使用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元,挖到新姿勢還有獎金,想想也足以。

總結


不管是做項目,還是企業內部測試,使用掃描器進行信息收集永遠只是個開始,而主要精力應該放在加深對框架理解與功能測試跟進上。


框架是否有外來代碼?是否使用三方插件?有沒有其他子域?


沒有挖不到的洞,只有不努力的黑客。


加油吧,各位少年~


*

本文作者:evil7,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

美國郵政服務網站漏洞可暴露6000萬用戶數據,現已修復

TAG:FreeBuf |