2018年12月9日,國內(nèi)某安全組織,對discuz X3.2 X3.4版本的漏洞進行了公開,這次漏洞影響范圍較大,具體漏洞是discuz 的用戶前段SQL注入與請求偽造漏洞,也俗稱SSRF漏洞,漏洞產(chǎn)生的原因首先:php環(huán)境的版本大約PHP5.2,dizcuzX3.2 X3.4版本,服務器環(huán)境是windows 2008 2003 2012系統(tǒng),linux centos不受此漏洞的影響。
漏洞的詳情與利用
該漏洞產(chǎn)生的原因是由于source目錄下的module文件里的misc模塊代碼,具體的是misc_imgcropper.php文件第54行到56行之間的函數(shù)變量賦值問題導致可以插入惡意非法參數(shù),導致可以進行變量,我們跟進這個函數(shù)傳遞到了那里。
跟蹤這個函數(shù)查到調(diào)用到了class目錄下的class_images.php,代碼如下圖:
從上述代碼中可以看出傳遞過來的url函數(shù),被正常解析到curl請求當中去,通過這里的代碼功能我們可以知道,我們可以調(diào)用cur的請求,去請求一些其他網(wǎng)站,curL:www.***.com.那么我們可以偽造自己構造的XSS獲取代碼,把代碼放到自己的網(wǎng)站當中,讓訪問者自動訪問我們精心制作的地址即可。但是利用這個請求偽造攻擊的漏洞需要一定的條件就是需要網(wǎng)址的跳轉才能更好的利用。
在discuz漏洞的利用過程中我們發(fā)現(xiàn)有些php版本也存在問題,必須是大約PHP5.2版本的,有些curl網(wǎng)址的請求才能有效果。我們提交的方式是get方式的數(shù)據(jù)提交,使用referer進行判斷跳轉。discuz官方對于來路的判斷跳轉進行了嚴格的過濾,導致你能使用任何地址進行跳轉,我們來看下官方是如何寫的代碼。如下圖:
從代碼里可以看到限制了只要是本地的網(wǎng)址https://127.0.0.1/discuz才能跳轉,我們測試了很多方式發(fā)現(xiàn)可以繞過discuz的限制,https://127.0.0.1%23%40www.安全測試.com&quickforward=2即可進行繞過,我們本地來測試下該漏洞:
discuz漏洞修復
關于discuz 3.4漏洞修復,建議使用者盡快升級discuz到最新版本,針對于curl的請求,php版本降級于5.2版本一下,或者是限制curl的功能使用。對discuz上的漏洞進行修復,或者是對網(wǎng)站安全防護參數(shù)進行重新設置,使他符合當時的網(wǎng)站環(huán)境。如果不懂如何修復discuzx3.4版本discuzx3.0版本以及discuzx3.2版本漏洞,也可以找專業(yè)的網(wǎng)站安全公司來處理,國內(nèi)也就Sinesafe和綠盟、啟明星辰等安全公司比較專業(yè).本文來源:www.sinesafe.com
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!