欧美激情网,国产欧美亚洲高清,欧美屁股xxxxx,欧美群妇大交群,欧美人与物ⅴideos另类,区二区三区在线 | 欧洲

知識學(xué)堂
  • ·聯(lián)系電話:+86.023-75585550
  • ·聯(lián)系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學(xué)堂 > 常見技術(shù)問題
杰奇CMS (<=1.7) SQL注入漏洞分析
更新時間:2012-05-06 | 發(fā)布人:本站 | 點擊率:379
杰奇CMS ( Jieqi CMS) 是一套以小說系統(tǒng)為主的CMS,目前的最新版本是1.7,在小說類的站中使用率還是比較高的,這幾天花了點時間看了一下他的代碼,覺得挺有意思的,跟大家分享一下。
 
整個系統(tǒng)核心代碼是zend加密的,dezend之后看了一下。先從最幾率最大的select型注入看起,但是發(fā)現(xiàn)所有地方GET過去的參數(shù),最后都會帶入\lib\database\database.php中組合SQL語句,再帶入到j(luò)ieqimysqldatabase類(\lib\database\mysql\db.php)的query方法進行最后的執(zhí)行。
 
仔細查看后發(fā)現(xiàn)不可利用,因為如果是數(shù)字型的變量,帶入到database.php時會進行is_numeric檢查;如果是字符串型會進行\(zhòng)轉(zhuǎn)義,嘗試了寬字節(jié)注入,但很可惜的是dp.php中有一句“character_set_client=binary”,也就是說php程序在與mysql交互的時候使用二進制字符集查詢,瞬間絕望了。
 
再留意了一下,發(fā)現(xiàn)程序中并沒有轉(zhuǎn)碼的操作,所以寬字節(jié)注入這條路就徹底不行了。
 
這是一個不好的信號,因為程序中基本上所有的字符串型都會進行轉(zhuǎn)義操作,我就不可能跳出魔術(shù)引號了。
 
又黑盒看了一下,后臺的一個地方會顯示用戶留言時的IP,IP是插在數(shù)據(jù)庫中的,于是考慮了一下能不能偽造IP,看看能否利用來注入或者xss。
 
分析之后得出獲取IP函數(shù)是jieqi_userip (/global.php) www.2cto.com ,采用HTTP_CLIENT_IP的方式來獲取的,可以偽造,但很蛋疼的是jieqi_userip在獲取了IP之后會把小數(shù)點替換為空,再進行is_numeric判斷- - || ,又白高興了。
 
接著找了一下xss,1.7沒有找到xss,1.6有幾個反射型xss。
 
再接再厲,又看了一下其他一些地方,但都沒太大的突破,最后看到注冊那一塊的時候,發(fā)現(xiàn)了一些問題。
 
處理注冊的頁面是/register.php,post過去的參數(shù)有username、password、repassword、email、sex、qq、url、action,跟了一下,發(fā)現(xiàn)是這樣一個流程:依次帶入到/regcheck.php中檢查username是否合法,username是否重復(fù),password是否等于repassword,email是否合法,email是否重復(fù)。也就是說sex、qq、url并沒有進行檢查,但是qq和url在數(shù)據(jù)庫中是varchar型,cms會把這兩個參數(shù)當字符串處理,也就是說如果出現(xiàn)單引號的話會進行轉(zhuǎn)義,前面已經(jīng)說過了,無法跳出魔術(shù)引號。
 
很幸運的是,程序猿百密一疏,天真的認為sex在前臺是以單選框顯示出來的,只有0、1、2這三種可能性,所以沒進行is_numeric判斷,直接帶入到數(shù)據(jù)庫中,那么就可以利用了。
 
總結(jié)一下,通過這幾天的審計,我覺得其實那個作者安全意識挺高的,對于常見安全性問題都做了相應(yīng)的防范,在一次次發(fā)現(xiàn)我想到的地方作者也想到了而失望的同時,也挺佩服作者的安全意識的,希望作者在看到本文時能及時修補。另外,以上的個人分析如果有什么不足的地方還望各位大牛補充,如果大家發(fā)現(xiàn)了1.7版本其他的一些問題或者是其他更好的后臺get webshell的方法,請告訴我一聲,共同交流,共同進步,thx :)