频道栏目
首页 > 安全 > 网络安全 > 正文

PHPCMS v9.6.0 任意文件上传漏洞分析

2017-04-15 10:46:00           
收藏   我要投稿

我们继续执行:

\

程序调用 copy 函数,对远程的文件进行了下载,此时我们从命令行中可以看到文件已经写入了:

\

shell 已经写入,下面我们就来看看如何获取 shell 的路径,程序在下载之后回到了 register 函数中:

\

可以看到当 $status > 0 时会执行 SQL 语句进行 INSERT 操作,具体执行的语句如下:

\

也就是向 v9_member_detail 的 content 和 userid 两列插入数据,我们看一下该表的结构:

\

因为表中并没有 content 列,所以产生报错,从而将插入数据中的 shell 路径返回给了我们:

\

上面我们说过返回路径是在 $status > 0 时才可以,下面我们来看看什么时候 $status <= 0,在 phpcms/modules/member/classes/client.class.php 中:

\

几个小于0的状态码都是因为用户名和邮箱,所以在 payload 中用户名和邮箱要尽量随机。

另外在 phpsso 没有配置好的时候 $status 的值为空,也同样不能得到路径。

在无法得到路径的情况下我们只能爆破了,爆破可以根据文件名生成的方法来爆破:

\

仅仅是时间加上三位随机数,爆破起来还是相对容易些的。

0x02 补丁分析

phpcms 今天发布了9.6.1版本,针对该漏洞的具体补丁如下:

\

在获取文件扩展名后再对扩展名进行检测

0x03 参考 https://www.seebug.org/vuldb/ssvid-92930 [漏洞预警]PHPCMSv9前台GetShell (2017/04/09)

上一篇:CVE-2017-0199:分析 Microsoft Office RTF 漏洞
下一篇:“血雨腥风”将至?方程式组织黑客工具包再曝光,大量针对Windows系统严重0day泄露
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站