菜鸡的挖洞之旅
这是一个究极咸鱼对一个小型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
即可。
成功执行php代码。
具体原因&代码分析
漏洞的复现总是简单的,接着让我们来剖析一下细节。
通过抓取上传文件的数据包可以看到路由触发位置。
接着跟进一下源码,在
jufengcms/x/plugin/managefile/controller/index.php
找到上传方法
主要操作是实例化OnlineEditor
类,调用它的uploadFile
方法,跟进uploadFile
能发现我们只能上传白名单的文件,事实确实如此。不过往下面看,在OnlineEditor
类中还存在renameFile
方法
并没有对更改文件名做类型限制,导致我们可以修改为php文件。通过抓包我们能发现在更改文件名的时候是否触发了renameFile
方法
能看到确实触发了renameFile
方法,到这我们就能实现任意文件名修改,还差一步,任意代码插入。
通过抓取修改文件内容的数据包
同样在/Users/sw0r3d/src/jufengcms/x/plugin/managefile/controller/index.php
找到了文件内容修改的触发位置
文件名可控,文件内容可控,就能成功写入任意代码了。(前面白分析了,到这基本等于白给
总结
这次是白盒结合黑盒挖掘的,所以在对于cms的漏洞挖掘建议大家用这种方法,白嫖漏洞。
(ps 如有错误希望各位大师傅指正 (pssss 有师傅有工作推荐推荐吗 '-'
- 本文作者: sw0r3d
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/201
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!