freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

JAVA代码审计1 · pb-cms(瀑布内容管理系统)
aboood 2023-09-13 15:48:01 212051

0x01 CMS概况

pb-cms瀑布内容管理系统,采用SpringBoot + Apache Shiro + Mybatis Plus + Thymeleaf 实现的内容管理系统(附带权限管理),是搭建博客、网站的不二之选,官方预览地址 https://www.puboot.com ,下载地址 https://gitee.com/LinZhaoguan/pb-cms 。

文章中审计的为该CMS早期的1.0版本,文章中的漏洞在2.0的版本中已修复。

0x02 Thymeleaf模板注入漏洞

查看配置文件和pom文件,系统使用的模板引擎为thymeleaf,在spring-boot-starter-thymeleaf 2.2.6.RELEASE版本中存在模板注入漏洞,在代码中全局搜索,BlogWebController.java中存在可以利用的漏洞点,thymeleaf模板注入的原理请自行百度。

1694586196_65015554951d2acb00d26.png!small?1694586197621

在bizThemeService.selectCurrent().getName()方法中追溯,功能为查找数据库内biz_theme表中的name字段,字段值为系统内正在使用的主题名称。

1694586502_65015686c2115040db7d3.png!small?1694586503743

后台主题信息中将主题的名称修改为

__${new java.util.Scanner(T(java.lang.Runtime).getRuntime().exec("calc").getInputStream()).next()}__::.x

1694586573_650156cd05f39ccf8d0da.png!small?1694586574202

填写payload后未能成功执行命令,调试发现此漏洞利用存在两处限制。

一、系统使用的redis缓存,需要删除其中的主题信息缓存,系统才会重新在数据库内读取新的值。

1694586801_650157b1a9d86787cbca2.png!small?1694586803622

二、biz_theme表中name字段的最大值为50字符,payload的字符数远大于50,为了漏洞触发需要将字符数调整为200 。

1694586898_6501581298dfe89131208.png!small?1694586899820

调整后重新访问主页,成功触发命令执行。

1694586951_650158475545eef9af113.png!small?1694586952998

0x03 shiro权限绕过漏洞

CMS使用的权限控制框架为shiro1.4.1,此版本中存在多个权限绕过cve,本次利用的漏洞为CVE-2020-1957,漏

可试读前30%内容
¥ 9.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 漏洞 # web安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 aboood 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
JAVA代码安全
aboood LV.4
这家伙太懒了,还未填写个人描述!
  • 15 文章数
  • 20 关注者
企业安全测试分享 | 如何通过python模拟前端加密登录
2023-10-27
JAVA代码审计3·某XXX博客系统
2023-10-02
JAVA代码审计2 · 某XXX网络考试系统
2023-09-18
文章目录