2018年12月9日,國內某安全組織,對discuz X3.2 X3.4版本的漏洞進行了公開,此次漏洞影響範圍較大,具體漏洞是discuz 的用戶前段SQL注入與請求僞造漏洞,也俗稱SSRF漏洞,漏洞產生的緣由首先:php環境的版本大約PHP5.2,dizcuzX3.2 X3.4版本,服務器環境是windows 2008 2003 2012系統,linux centos不受此漏洞的影響。php
漏洞的詳情與利用linux
該漏洞產生的緣由是因爲source目錄下的module文件裏的misc模塊代碼,具體的是misc_imgcropper.php文件第54行到56行之間的函數變量賦值問題致使能夠插入惡意非法參數,致使能夠進行變量,咱們跟進這個函數傳遞到了那裏。windows
跟蹤這個函數查到調用到了class目錄下的class_images.php,代碼以下圖:centos
從上述代碼中能夠看出傳遞過來的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便可進行繞過,咱們本地來測試下該漏洞:curl
discuz漏洞修復函數
關於discuz 3.4漏洞修復,建議使用者儘快升級discuz到最新版本,針對於curl的請求,php版本降級於5.2版本一下,或者是限制curl的功能使用。對discuz上的漏洞進行修復,或者是對網站安全防禦參數進行從新設置,使他符合當時的網站環境。若是不懂如何修復discuzx3.4版本discuzx3.0版本以及discuzx3.2版本漏洞,也能夠找專業的網站安全公司來處理,國內也就Sinesafe和綠盟、啓明星辰等安全公司比較專業.測試