齊博CMS的sql注入漏洞學習

2021-09-02 10:18:35 字數 1363 閱讀 2841

今天看到了asrc上面對某個cms的漏洞分析的文章( 

),感覺阿里大牛在寫漏洞分析的時候還是有點謹慎,利用方式什麼就更不能說了。

漏洞的原因就是 inc/common.inc.php 中的這一段**:

if(!ini_get('register_globals'))
這段**的含義就是把 php接收到的$_files 請求的陣列轉換成一些變數。而我們知道,這些變數是不會經過魔術引號的轉義的。

再看 member/comment.php 這個檔案,如下**:

if($job=='del')comment where cid='$value'");

$erp=get_id_table($rs[aid]);

$rsdb=$db->get_one("select c.cid,c.uid as commentuid,c.aid,a.uid,a.fid from comment c left join article$erp a on c.aid=a.aid where c.cid='$value'");

if($rsdb[uid]==$lfjuid||$rsdb[commentuid]==$lfjuid||$web_admin||in_array($rsdb[fid],$fiddb))comment where cid='$rsdb[cid]'");

} $db->query("update article$erp set comments=comments-1 where aid='$rsdb[aid]'");

} refreshto("$fromurl","刪除成功",0);

}

但是因為 comment.php引用了common.inc.php,並且$ciddb並沒有初始化,所以這邊我們可以用 $_files裡面的變數去直接給 $ciddb 賦值,並且沒有轉義。

poc:

其實算不上poc,就是乙個簡單的利用方式。

寫乙個簡單的html頁面:

action裡面寫**相關位址

然後我們重新命名乙個檔案,名為:1' union select version() and '1'='1

然後提交上傳,就可以看到返回結果了:

這邊有個比較麻煩的問題是: 由於value值儲存在了兩個sql語句裡面,這兩個語句的列不一樣,所以這邊用union會報錯,只能盲注了。或者尋找一下其他地方的未初始化的變數也可。

齊博cms漏洞分析

還是很早之前爆出來的漏洞,現在拿出來學習一下,參考阿里巴巴 漏洞發生在 inc common.inc.php頁面中。首先看這個函式 首先使用ini get來獲取php.ini中變數 register globals 的值,而register globals代表的意思是提交的請求是否註冊為全域性變數,...

齊博cms 7 0 漏洞分析

還是很早之前爆出來的漏洞,現在拿出來學習一下,參考阿里巴巴 漏洞發生在 inc common.inc.php頁面中。首先看這個函式 首先使用ini get來獲取php.ini中變數 register globals 的值,而register globals代表的意思是提交的請求是否註冊為全域性變數,...

74CMS 3 0 SQL注入漏洞前台

1.雙擊執行桌面phpstudy.exe軟體 2.點選啟動按鈕,啟動伺服器環境 1.雙擊啟動桌面seay源 審計系統軟體 2.因為74cms3.0源 編輯使用gbk編輯,所以首先需要先將編碼改成gbk 3.點選新建專案按鈕,彈出對畫框中選擇 c phpstudy www 74cms 點選確定 漏洞分...