齊博cms最新SQL註入網站漏洞 可遠程執行代碼提權
阿新 • • 發佈:2018-10-25
pid guide oss cms sse str ctu mem 一個 齊博cms整站系統,是目前建站系統用的較多的一款CMS系統,開源,免費,第三方擴展化,界面可視化的操作,使用簡單,便於新手使用和第二次開發,受到許多站長們的喜歡。開發架構使用的是php語言以及mysql數據庫,強大的網站並發能力。於近日,我們SINE安全公司發現齊博cms又爆出高危的sql註入漏洞,關於該網站漏洞的詳情,我們來詳細的分析漏洞的產生以及如何利用。
我們發現這個get_safe()函數是用來傳遞用戶的激活信息,並進行安全過濾與判斷的,從這裏我們可以插入惡意的sql語句到網站後端裏去,並直接到數據庫中執行該語句,我們本地來測試一下是否可以sql註入:
從上圖我們可以看出可以進行網站sql註入***,那麽我們就可以進行查詢數據庫的賬號密碼操作,比如查詢網站超級管理員的賬號密碼:and (updatexml(1,concat(0x7e,(substring((selectusername from qb_memberdata where groupid=3),1, 這個語句就是查詢超級管理員的賬號密碼,通過這裏我們查到網站的管理員賬號密碼,登錄後臺,我們進行遠程代碼提權了。
增加欄目為${assert($_POST[safe])},一句話後門的代碼會直接寫入到/data/guide_fid.php文件,用一句話***連接工具連接即可。
在對整個網站代碼的漏洞檢測中發現do目錄下的activate.php存在可以插入惡意參數的變量值,我們來看下這個代碼:
齊博cms漏洞詳情:
從代碼裏發現這個代碼的功能是發送序列號激活的一個功能,從激活的鏈接地址裏,可以看出do/activate.php?job=activate&safe_id=$safe_id 是用來激活序列號的,我們從整個齊博的代碼裏找到了賬號激活的一個大體的過程,首先會註冊一個賬號,註冊賬號後會需要發送郵件到用戶的郵箱裏,郵箱裏驗證的是safe_id這個值,這個safe_id這個值經過md5的解密後直接生成uaername跟用戶的密碼,然後再傳入到get_safe()這個函數,在這個inc文件夾下的class.user.php代碼裏找得到這個函數。
從上圖我們可以看出可以進行網站sql註入***,那麽我們就可以進行查詢數據庫的賬號密碼操作,比如查詢網站超級管理員的賬號密碼:and (updatexml(1,concat(0x7e,(substring((selectusername from qb_memberdata where groupid=3),1, 這個語句就是查詢超級管理員的賬號密碼,通過這裏我們查到網站的管理員賬號密碼,登錄後臺,我們進行遠程代碼提權了。
增加欄目為${assert($_POST[safe])},一句話後門的代碼會直接寫入到/data/guide_fid.php文件,用一句話***連接工具連接即可。
關於齊博cms漏洞的修復,我們SINE安全建議網站的運用者,盡快升級齊博CMS到最新版本,對於sql註入語句進行安全過濾與sql註入防護,對網站的後臺默認地址進行詳細的更改為其他的文件名。對於前端網站進行sql語句查詢的時候進行網站安全白名單系統部署,網站後臺的賬號密碼設置的復雜一些,盡可能的用數字+大小寫+特殊字符組合。
齊博cms最新SQL註入網站漏洞 可遠程執行代碼提權