JAVA代审-JFinalCMSV5.0.0sql注入分析

admin 2024年8月5日08:39:31评论22 views字数 2626阅读8分45秒阅读模式

由于传播、利用本公众号菜狗安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号菜狗安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,会立即删除并致歉。

文章目录

项目介绍  软件架构环境部署  1、创建数据库  2、修改pom.xml文件  3、配置tomcat漏洞分析  第一处:admin/admin  SQL注入挖掘技巧(数据库监控)漏洞复现  第二处:admin/div_data/delete(无漏洞)其它漏洞  前台SQL注入  漏洞复现  /admin/content/data注入  XSS总结

项目介绍

JFinalCMS,极速开发,动态添加字段,自定义标签,动态创建数据库表并crud数据,数据库备份、还原,动态添加站点(多站点功能),一键生成模板代码,让您轻松打造自己的独立网站,同时也方便二次开发,让您快速搭建个性化独立网站,为您节约更多时间,去陪恋人、家人和朋友

软件架构

  1. MVC:JFinal
  2. 页面:enjoy
  3. 缓存:ehcache
  4. 数据库:Mysql

环境部署

这个系统有两个版本,一套 JFinal版本,一套Springboot版

JFinal:https://gitee.com/heyewei/JFinalcms

Springboot:https://gitee.com/heyewei/SpringBootCMS

我这里下载的是JFinal版本的

项目下载到本地后,使用IDEA打开

1、创建数据库

数据库配置文件:JFinalcms-mastersrcmainresourcesconfig.properties

SQL文件:JFinalcms-masterJFinalCMS.sql

根据数据库配置文件创建对应的数据库,连接端口和账号根据自己环境修改

JAVA代审-JFinalCMSV5.0.0sql注入分析

2、修改pom.xml文件

给maven-compiler-plugin插件添加版本

JAVA代审-JFinalCMSV5.0.0sql注入分析

3、配置tomcat

JAVA代审-JFinalCMSV5.0.0sql注入分析

配置完成后,启动项目

JAVA代审-JFinalCMSV5.0.0sql注入分析

后台地址:admin/login

登入账号:admin/123456

漏洞分析

第一处:admin/admin

由于知道了漏洞触发路由,所以这里直接全局搜索admin/admin

JAVA代审-JFinalCMSV5.0.0sql注入分析

只有一个文件,我们直接点进去看

JAVA代审-JFinalCMSV5.0.0sql注入分析

漏洞点是index(),我一开始看的时候没注意到getPara方法,一直在看底下的小方法,发现不是有过滤就是,不可控,到后面才注意到。

我们先看getPara方法

JAVA代审-JFinalCMSV5.0.0sql注入分析

这个getPara是作者自己写的一个成员方法,它里面就一行代码:this.request.getParameter(name),request是常量,值是HttpServletRequest,执行getPara就等同于执行HttpServletRequest.getParameter(name),就是get方法接收数据,参数值name是getPara()里的参数。

回看前面的代码就是name和username参数,它接收参数后,处理这两个参数值的代码是第44行

JAVA代审-JFinalCMSV5.0.0sql注入分析

跟进findPage方法

JAVA代审-JFinalCMSV5.0.0sql注入分析

里面是执行的sql语句,可以看到name和username的值都是直接拼接到sql语句中的,而且这里代码中也没有看到过滤,那么这里基本可以判断存在注入漏洞了

SQL注入挖掘技巧(数据库监控)

项目地址:https://github.com/cw1997/MySQL-Monitor

这里可以使用MySQL监控工具,看一下语句执行(在挖sql注入非常好用)

burp抓包

JAVA代审-JFinalCMSV5.0.0sql注入分析

可以看到数据库执行语句

JAVA代审-JFinalCMSV5.0.0sql注入分析

通过这个可以判断,数据有没有带入语句中,语句符号有没有转义等,还是很舒服的

漏洞复现

漏洞复现,我这里直接用sqlmap搜哈了

burp抓包,name后面加上*,保存成txt文件

JAVA代审-JFinalCMSV5.0.0sql注入分析

存在注入,参数换成username也是一样的

JAVA代审-JFinalCMSV5.0.0sql注入分析

第二处:admin/div_data/delete(无漏洞)

还是一样,全局搜索对应路由

JAVA代审-JFinalCMSV5.0.0sql注入分析

只有一处,看下代码

JAVA代审-JFinalCMSV5.0.0sql注入分析

这里有两个可控参数,divId和ids,这里执行语句在第131行,Db.update

虽然说这里的ids是直接拼接到语句中,但是这里ids的数据类型是Integer,是注入不了的,然后我又看了下findById方法,也没看到有用信息,这一处是没有注入的

其它漏洞

前台SQL注入

这两处sql注入都是在后台产生的,危害相对但是在我查找这套系统的信息的时候,发现它还有一个前台的sql注入

JAVA代审-JFinalCMSV5.0.0sql注入分析

漏洞产生地址:/search

思路还是一样,直接全局搜索 /search

JAVA代审-JFinalCMSV5.0.0sql注入分析

第一处点进去看

JAVA代审-JFinalCMSV5.0.0sql注入分析

这里两个参数,但是pageNumber是Int型,所以这里看keyword,这里没有看到执行的sql语句,可以用mysql监控看,我这里为了看的更直观,我直接搜关键字keyword

JAVA代审-JFinalCMSV5.0.0sql注入分析

JAVA代审-JFinalCMSV5.0.0sql注入分析

不知道找的对不对,只看到这一处,把keyword的值追加到filterSql中,但是这里好像也没发现过滤啥的,但是看到poc是有做绕过空格

漏洞复现

burp抓包

JAVA代审-JFinalCMSV5.0.0sql注入分析

payload:

/search?keyword=111'and(select*from(select+sleep(4))a/**/union/**/select+1)='

执行后可以看到有延时,漏洞是存在的

JAVA代审-JFinalCMSV5.0.0sql注入分析

监控到的执行语句

JAVA代审-JFinalCMSV5.0.0sql注入分析

更多的信息没分析出来,还是太菜了。。。

/admin/content/data注入

这个也是后台的,分析起来和/admin/admin,那个是一样的,都是String类型参数值直接拼接到语句中,感兴趣的可以看下,我感觉没必要。

XSS

这种漏洞没啥危害,给个参考链接

https://gitee.com/heyewei/JFinalcms/issues/I8VHM2

https://gitee.com/heyewei/JFinalcms/issues/I8VHGR

总结

我这里主要分析的是JFinal版本,Springboot版的话,使用的是mybatis-plus的动态绑定这几处sql注入都没有,但是好像有RCE漏洞,我这里就不继续写了。

这篇文章应该是属于1day分析(有公开poc不知道算不算1day),知道漏洞触发路由,所以审计起来快,正常来说,SQL注入的审计流程应该是先判断数据库连接使用的技术,然后根据不同的数据库连接技术,使用不同关键字搜索配合数据库监控来审计。

最近在HVV,一天12h,实在是没有什么时间更文章,学技术的时间都非常有限,这篇还是之前写的库存,等HVV结束要接着沉淀了,到时候更新应该会比较勤快

原文始发于微信公众号(菜狗安全):JAVA代审-JFinalCMSV5.0.0sql注入分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月5日08:39:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JAVA代审-JFinalCMSV5.0.0sql注入分析https://cn-sec.com/archives/3035649.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息