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