Fastcms 代码审计(第一篇)

admin 2023年10月17日11:57:25评论40 views字数 800阅读2分40秒阅读模式

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 代码审计(第一篇)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月17日11:57:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Fastcms 代码审计(第一篇)https://cn-sec.com/archives/2117793.html

发表评论

匿名网友 填写信息