【0day】CRMEB_Java 开源商城系统代码审计

admin 2025年3月20日14:24:21评论12 views字数 1637阅读5分27秒阅读模式
【0day】CRMEB_Java 开源商城系统代码审计

点击上方蓝字关注我们 并设为星标

0x00 环境准备

【0day】CRMEB_Java 开源商城系统代码审计
下载后通过pom.xml 问完成依赖下载
【0day】CRMEB_Java 开源商城系统代码审计
环境需要Java、Redis、Mysql(也可以直接使⽤phpstudy集成)、Ide集成环境(Trae)
【0day】CRMEB_Java 开源商城系统代码审计
注意Redis默认下载启动⽆密码,需要修改项⽬配置⽂件的redis密码为空,或者修改Redis数据库密码 和项⽬保持⼀致
【0day】CRMEB_Java 开源商城系统代码审计
【0day】CRMEB_Java 开源商城系统代码审计
导⼊项⽬数据库
【0day】CRMEB_Java 开源商城系统代码审计
启动数据库,注意修改数据库密码⼀致
【0day】CRMEB_Java 开源商城系统代码审计
运⾏Admin管理端
【0day】CRMEB_Java 开源商城系统代码审计
运⾏后访问http://xxx/doc.html验证部署是否成功
【0day】CRMEB_Java 开源商城系统代码审计
该系统是前后端分离架构,需要单独运⾏Web 前端
【0day】CRMEB_Java 开源商城系统代码审计
【0day】CRMEB_Java 开源商城系统代码审计
【0day】CRMEB_Java 开源商城系统代码审计
部署参考⽂档 https://doc.crmeb.com/java/crmeb_java/2211

0x01 SQL注入漏洞1

针对不同框架的Java项⽬ 会有不同的sql注⼊审计注意点 以下是常⻅的SQL注⼊关键字
${createStatement(executeQuery(executeUpdate(StringBuilder.append(in/order by/like 语句:这些场景因⽆法预编译,常伴随动态拼接⻛险FIND_IN_SETqueryForObjectQueryWrapperLambdaQueryWrapper01 危险⽅法.apply 允许直接拼接SQL⽚段。若未正确使⽤参数占位符(如`{0}`或`?`),且参数来⾃⽤户输⼊时,可能引发注⼊。02 危险⽅法.last() ⽅法:直接追加SQL语句末尾。若拼接⽤户输⼊(如`limit`值、排序字段等),可能破坏SQL结构。
重点就是看代码是否有直接拼接sql语句或使⽤了${}进⾏动态拼接
全局搜索${ 发现2个mapper.xml
【0day】CRMEB_Java 开源商城系统代码审计
StoreOrderMapper.xml ⽂件显示有三个sql映射直接使⽤了 ${ 拼接sql语句
【0day】CRMEB_Java 开源商城系统代码审计
跟进到Dao层
【0day】CRMEB_Java 开源商城系统代码审计
继续跟进到server层
【0day】CRMEB_Java 开源商城系统代码审计
发现Server层代码对SQL语句直接进⾏了拼接,并且拼接了三次
【0day】CRMEB_Java 开源商城系统代码审计
第⼀次拼接
【0day】CRMEB_Java 开源商城系统代码审计
使⽤dateutil函数做了格式化处理,不存在注⼊
【0day】CRMEB_Java 开源商城系统代码审计
第⼆次拼接
if (!StringUtils.isBlank(request.getKeywords())) {where += " and (real_name like '%"+ request.getKeywords() +"%' oruser_phone = '"+ request.getKeywords() +"' or order_id = '" +request.getKeywords() + "' or id = '" + request.getKeywords() + "')";}
没有做格式化或其他过滤⼿段直接进⾏了拼接,继续跟进到Controller层
【0day】CRMEB_Java 开源商城系统代码审计
找到参数如下
【0day】CRMEB_Java 开源商城系统代码审计
【0day】CRMEB_Java 开源商城系统代码审计
第三次拼接如下
【0day】CRMEB_Java 开源商城系统代码审计
使⽤了Integer 强制数字型 故也不存在注⼊
【0day】CRMEB_Java 开源商城系统代码审计

0x02 SQL注入漏洞2

使⽤关键字QueryWrapper进⾏搜索,发现StoreProductServiceimp也存在sql拼接
【0day】CRMEB_Java 开源商城系统代码审计
进⼀步跟进到contrller层找到路由以及参数
【0day】CRMEB_Java 开源商城系统代码审计
【0day】CRMEB_Java 开源商城系统代码审计
【0day】CRMEB_Java 开源商城系统代码审计
api/admin/store/product/list?page=1&limit=20&cateId=1'&keywords=&type=2&temp=1741250313
【0day】CRMEB_Java 开源商城系统代码审计
其他注⼊点审计(不存在)
【0day】CRMEB_Java 开源商城系统代码审计
【0day】CRMEB_Java 开源商城系统代码审计
tagidsql通过crmebutil的getfindsetsql⽅法做了处理
【0day】CRMEB_Java 开源商城系统代码审计
对idStr做了字符串转数组
【0day】CRMEB_Java 开源商城系统代码审计
所以这⾥tagidsql不存在注⼊
【0day】CRMEB_Java 开源商城系统代码审计

0x03 源码下载

标签:代码审计,0day,渗透测试,系统,通用,0day,闲鱼,转转

源码下载关注公众号发送 250320 获取!

优质代码审计社区-零日防线 加入方式: 
https://mp.weixin.qq.com/s/EFgzGZSc7DGxXZc3DlALtw
【0day】CRMEB_Java 开源商城系统代码审计

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,文章作者和本公众号不承担任何法律及连带责任,望周知!!!

原文始发于微信公众号(星悦安全):【0day】CRMEB_Java 开源商城系统代码审计

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月20日14:24:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【0day】CRMEB_Java 开源商城系统代码审计https://cn-sec.com/archives/3862510.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息