记一次简单的CMS漏洞挖掘

菜鸡的挖洞之旅

这是一个究极咸鱼对一个小型cms(飓风cms)的一次简单挖掘,已交CNVD

环境搭建

官网下载源码,利用docker搭建,由于需要php7的版本,这里利用的镜像是mattrayner/lamp

一个docker的小tips,本地源码作为容器映射到docker上即可。

docker run -it -v $(pwd):/var/www/html -d -p8888:80 镜像ID

顺便把phpmyadmin也拖进源码目录,方便新建数据库。然后访问x/install目录,按步骤安装即可。

漏洞复现

我们先尝试黑盒挖掘,访问x/admin,进入后台登录页面

管理员登录

发现有文件管理功能,还可以进行文件上传

上传

尝试上传最简单的webshell,提示我们非法文件类型,上传jpg文件,成功。

上传文件

修改文件内容,以及文件名。

插入代码

文件名修改

由于我们上传的是网站根目录,所以直接首页访问1.php即可。

phpinfo

成功执行php代码。

具体原因&代码分析

漏洞的复现总是简单的,接着让我们来剖析一下细节。

通过抓取上传文件的数据包可以看到路由触发位置。

路由位置

接着跟进一下源码,在

jufengcms/x/plugin/managefile/controller/index.php

找到上传方法

upload方法

主要操作是实例化OnlineEditor类,调用它的uploadFile方法,跟进uploadFile

upload

能发现我们只能上传白名单的文件,事实确实如此。不过往下面看,在OnlineEditor类中还存在renameFile方法

rename

并没有对更改文件名做类型限制,导致我们可以修改为php文件。通过抓包我们能发现在更改文件名的时候是否触发了renameFile方法

更改文件名

能看到确实触发了renameFile方法,到这我们就能实现任意文件名修改,还差一步,任意代码插入。

通过抓取修改文件内容的数据包

数据包

同样在/Users/sw0r3d/src/jufengcms/x/plugin/managefile/controller/index.php找到了文件内容修改的触发位置

触发位置

文件名可控,文件内容可控,就能成功写入任意代码了。(前面白分析了,到这基本等于白给

总结

这次是白盒结合黑盒挖掘的,所以在对于cms的漏洞挖掘建议大家用这种方法,白嫖漏洞。

(ps 如有错误希望各位大师傅指正 (pssss 有师傅有工作推荐推荐吗 '-'

  • 发表于 2021-06-24 16:36:38
  • 阅读 ( 7256 )
  • 分类:WEB安全

0 条评论

请先 登录 后评论
sw0r3d
sw0r3d

1 篇文章

站长统计