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