JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

admin 2024年7月5日14:50:15评论1 views字数 2267阅读7分33秒阅读模式
嗨,大家好,我是闪石星曜@云渡
今天为大家分享《JFinalCMS 系统的漏洞浅析》,该篇文章是来自内部圈子“每周任务安排”计划下不错的文章,来自c0cho师傅。
关于这个计划,你们可以点击下方链接查看。当然了,这仅仅是一小部分。跟有趣的是新增的主题:《快速上手 Spring/SpringBoot 架构系统代码审计系列视频课》
为什么说现在是学习代码审计最好的时候呢?
限时获取知识星球的优惠券~
进入正文。
“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

部署

JFinalCMS有两套环境一套为JFinalCMS一套为SpringBoot版本

https://gitee.com/heyewei/JFinalcms#https://gitee.com/heyewei/SpringBootCMShttps://gitee.com/heyewei/SpringBootCMS

JFinalCMS部署

执行数据库文件

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

修改配置文件

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

配置tomcat启动

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

admin/123456登录成功

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

SpringBoot版本部署

执行数据库文件

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

修改配置文件

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

启动App.java

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

JFinalCMS版本/admin/admin接口SQL注入(存在)

代码分析

找到接口位置

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

可以看到name和username传参为直接拼接,最后拼接到paginate方法中执行,必然存在sql注入

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

黑盒验证

payload1:http://localhost:8081/cms_war/admin/admin?username=r%' and 1=2 and '%'='

url编码:

http://localhost:8081/cms_war/admin/admin?username=r%25%27%20and%201=2%20and%20%27%25%27=%27

因为and 1=2 为假所以查不到数据

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

paylaod2: http://localhost:8081/cms_war/admin/admin?username=r%' and 1=1 and '%'='

url编码:

http://localhost:8081/cms_war/admin/admin?username=r%25%27%20and%201=1%20and%20%27%25%27=%27

因为and 1=1 为真所以有数据

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

再来看name传参如何证明sql注入,因为name传参本来就没数据,如何构造sql注入语句呢?用时间函数即可

payload3:

url编码:

http://localhost:8081/cms_war/admin/admin?name=%' and (select (sleep(5))) and '%'='
http://localhost:8081/cms_war/admin/admin?name=%25%27%20and%20(select%20(sleep(5)))%20and%20%27%25%27=%27) and '%'=')

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

快速代码审计

以上为正向审计,其实可以使用搜索语法反向查询sql注入更快

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

JFinalCMS版本/admin/div_data/delete?divId 接口SQL注入(不存在)

代码分析

找到接口位置

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

分析delete方法代码,divId和ids一个转为来int类型数据一个转为int类型数组,理论上无法传入字符串了,再来看StringUtils.join方法,因该是把上面的int类型数组中多个数据用,号隔开拼接为字符串,所以此语句存在sql注入问题,但是又因为ids[]是int类型数组,字符串无法传入,此处sql注入不存在

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

黑盒验证

不存在sql注入

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

JFinalCMS版本/admin/div_data/delete?divId 接口二次SQL注入(存在)

代码分析

getTableName查询的内容可以被编辑保存

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

理论上使用div.getTableName()方法的都能执行注入

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

黑盒测试

修改数据库表名

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

刷新即执行成功

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

FinalCMS版本/admin/content/data 接口SQL注入(存在)

参考:https://gitee.com/heyewei/JFinalcms/issues/I8VE52

JFinalCMS版本XSS

参考:https://gitee.com/heyewei/JFinalcms/issues/I8VHM2https://gitee.com/heyewei/JFinalcms/issues/I8VHGR

SpringBoot版本/admin/admin接口sql注入(不存在)

找到接口

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

用了mybatis-plus的动态参数绑定,QueryWrapper 会将 name 和 username 作为参数绑定到查询中,不存在sql注入

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

SpringBoot版本/admin/div_data/delete?divId 接口sql注入(不存在)

在传参处就限定了ids为int类型数组,不存在注入

JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

SpringBoot版本任意文件上传rce

之前可以利用这个漏洞直接获取官方演示站点rce

参考:https://gitee.com/heyewei/SpringBootCMS/issues/I8VL2J

SpringBoot版本任意文件读取

参考:https://gitee.com/heyewei/SpringBootCMS/issues/I8VM2H

原文始发于微信公众号(闪石星曜CyberSecurity):JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月5日14:50:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JFinalCMS 系统的漏洞浅析。“这套系统搭建方便简单,代码分析不难,非常适合刚入门的朋友学习。”https://cn-sec.com/archives/2922928.html

发表评论

匿名网友 填写信息