傑奇CMS 1 7 SQL注入漏洞分析

2021-12-30 00:45:07 字數 1513 閱讀 8837

傑奇cms ( jieqi cms) 是一套以**系統為主的cms,目前的最新版本是1.7,在**類的站中使用率還是比較高的,這幾天花了點時間看了一下他的**,覺得挺有意思的,跟大家分享一下。

整個系統核心**是zend加密的,dezend之後看了一下。先從最機率最大的select型注入看起,但是發現所有地方get過去的引數,最後都會帶入\lib\database\database.php中組合sql語句,再帶入到jieqimysqldatabase類(\lib\database\mysql\db.php)的query方法進行最後的執行。

仔細檢視後發現不可利用,因為如果是數字型的變數,帶入到database.php時會進行is_numeric檢查;如果是字串型會進行\轉義,嘗試了寬位元組注入,但很可惜的是dp.php中有一句「character_set_client=binary」,也就是說php程式在與mysql互動的時候使用二進位制字符集查詢,瞬間絕望了。

再留意了一下,發現程式中並沒有轉碼的操作,所以寬位元組注入這條路就徹底不行了。

這是乙個不好的訊號,因為程式中基本上所有的字串型都會進行轉義操作,我就不可能跳出魔術引號了。

又黑盒看了一下,後台的乙個地方會顯示使用者留言時的ip,ip是插在資料庫中的,於是考慮了一下能不能偽造ip,看看能否利用來注入或者xss。

分析之後得出獲取ip函式是jieqi_userip (/global.php) www.2cto.com ,採用http_client_ip的方式來獲取的,可以偽造,但很蛋疼的是jieqi_userip在獲取了ip之後會把小數點替換為空,再進行is_numeric判斷- - || ,又白高興了。

接著找了一下xss,1.7沒有找到xss,1.6有幾個反射型xss。

再接再厲,又看了一下其他一些地方,但都沒太大的突破,最後看到註冊那一塊的時候,發現了一些問題。

處理註冊的頁面是/register.php,post過去的引數有username、password、repassword、email、***、qq、url、action,跟了一下,發現是這樣乙個流程:依次帶入到/regcheck.php中檢查username是否合法,username是否重複,password是否等於repassword,email是否合法,email是否重複。也就是說***、qq、url並沒有進行檢查,但是qq和url在資料庫中是varchar型,cms會把這兩個引數當字串處理,也就是說如果出現單引號的話會進行轉義,前面已經說過了,無法跳出魔術引號。

很幸運的是,程式猿百密一疏,天真的認為***在前台是以單選框顯示出來的,只有0、1、2這三種可能性,所以沒進行is_numeric判斷,直接帶入到資料庫中,那麼就可以利用了。

總結一下,通過這幾天的審計,我覺得其實那個作者安全意識挺高的,對於常見安全性問題都做了相應的防範,在一次次發現我想到的地方作者也想到了而失望的同時,也挺佩服作者的安全意識的,希望作者在看到本文時能及時修補。另外,以上的個人分析如果有什麼不足的地方還望各位大牛補充,如果大家發現了1.7版本其他的一些問題或者是其他更好的後台get webshell的方法,請告訴我一聲,共同交流,共同進步,thx :)

作者

筆聚閣傑奇小說最新模板 v1 7

傑奇 模板安裝說明 1,事先安裝傑奇程式1.7 2,上傳模板檔案到對應的目錄,有重複就覆蓋,新站不用擔心,老站,特別是有重要資料的站,請事先本地測試本模板或提前備份 3,進入後台 資料維護 資料庫公升級 第一次會提示輸入資料庫帳號密碼 複製sql.sql檔案的全部 到輸入框 提交 4,進入後台 系統...

傑奇後台採集規則

經過一段時間的測試,發現傑奇 1.7 在 linux 環境下,只要配置不渣,後台採集的速度比關關採集器單開還快些,雖然由於後台採集並不會顯示進度條,採集章節的過程一直就是載入狀態,有宕機的錯覺,但是狀態還是良好,感覺就算不用於 linux,也可以和 windows 配合使用,所以為了練手決定免費幫助...

傑奇小說程式怎麼修改小說分類

大家用過很多cms,應該都知道修改其他的cms程式的分類都很簡單,只要後台直接增刪改下欄目就可以了。但傑奇 不能在後台修改它的分類,可能是因為傑奇的分類不是儲存在資料庫裡有關吧。但很多時候都需要修改下 的分類,比如分類多了 分類少了 有不喜歡的分類 總之就是要修改分類。首先得知道傑奇cms的分類儲存...