Fastcms 代码审计(第一篇)

渗透技巧 6个月前 admin
104 0 0

fastcms是基于SpringBoot前后端分离技术,且具有插件化架构的CMS系统,系统具有高扩展性,易维护性,可以 快速搭建网站,微信小程序,是开发微信营销插件的基石

0x01 任意zipjar文件删除(路径一)

com.fastcms.web.controller.admin#install()

Fastcms 代码审计(第一篇)

可以看到先判断后缀是zip还是jar文件 然后使用trycatch语句,报错后直接删除文件,然而这里没有对getOriginalFilename()进行任何过滤。

Fastcms 代码审计(第一篇)

跟进一下

Fastcms 代码审计(第一篇)

可以看⻅路由为/fastcms/api/admin/plugin/install

Fastcms 代码审计(第一篇)

这里先让他报错,得到路径,然后就可以进行任意zip或者jar删除。

Fastcms 代码审计(第一篇)

创建测试zip

Fastcms 代码审计(第一篇)

构造payload,发送

Fastcms 代码审计(第一篇)

可以看到这里删除的路径

放行后,删除成功

Fastcms 代码审计(第一篇)


0x02 任意zip文件删除(路径二)

com.fastcms.cms.controller.admin#install()

Fastcms 代码审计(第一篇)

先取文件名后缀,然后判断是否是zip然后安装,安装错误时打印错误,然后删除文件。看一下路由

Fastcms 代码审计(第一篇)

得到路由/fastcms/api/admin/template/install

Fastcms 代码审计(第一篇)

先构造不存在的路由,得到web根目录 创建测试zip文件

Fastcms 代码审计(第一篇)

Fastcms 代码审计(第一篇)

Fastcms 代码审计(第一篇)

0x03 任意路径文件写入

可以看到要删除的文件,放行后成功删除

com.fastcms.cms.controller.admin#upload()

Fastcms 代码审计(第一篇)

这里先对dirname判断是否为空,以及..过滤

Fastcms 代码审计(第一篇)

这里得到模版路径,跟进

Fastcms 代码审计(第一篇)

发现是模版路径拼接传入的dirName

Fastcms 代码审计(第一篇)

然后这里给到上传filename,没有任何过滤,然后直接进行写入

Fastcms 代码审计(第一篇)

得到路由fastcms/api/admin/template/files/upload

Fastcms 代码审计(第一篇)

然后在把模版目录和文件名拼接进行文件写入。放行后,成功写入

Fastcms 代码审计(第一篇)

所以写入计划任务、ssh公钥等就能shell


原文始发于微信公众号(黑伞安全):Fastcms 代码审计(第一篇)

版权声明:admin 发表于 2023年10月16日 下午5:03。
转载请注明:Fastcms 代码审计(第一篇) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...