周末开始卷,炼石计划之50套JavaWeb代码审计(四):有趣的进销存系统

admin 2022年3月18日23:10:07代码审计评论45 views2278字阅读7分35秒阅读模式

在这面具之下,是你坚强的信念

闪石星曜

周末开始卷,炼石计划之50套JavaWeb代码审计(四):有趣的进销存系统


炼石计划之50套JavaWeb代码审计
第五套:若依管理系统某版本
第六套:任务调度系统
第七套:OFCMS

正在火热练习阶段ing......

并且定期分享ing......

关注我们,跟着好好学习。


··· ···




1

 项目安装


企业级进销存管理系统,采用SpringBoot+Shiro+MyBatis+EasyUI构建。

A、环境要求

1、Windows 10系统。

2、Java版本为1.8.0_261

3、Mysql版本为5.7。我用的是PHPstudy集成的。

4、IDEA版本随意。

B、项目部署流程

①、命令行进入Mysql后,创建数据库名为jxc,并切换使用该数据库。

②、将项目文件中的/sql/jxc.sql的数据导入到jxc数据库,注意导入路径中应使用正斜杠/

③、使用IDEA打开本项目,等待Maven自动加载依赖项,如果时间较长需要自行配置Maven加速源。几个现象表明项目部署成功。pom.xml文件无报错,项目代码已编译为classRun/Debug Configurations...处显示可以运行。

④、修改src/main/resouces/application.properties配置文件内容,具体如下图所示:

周末开始卷,炼石计划之50套JavaWeb代码审计(四):有趣的进销存系统

⑤、点击启动Run/Debug Configurations...本项目。

⑥、项目访问地址如下:

  • 后台地址:http://127.0.0.1:8888/login.html

⑦、登录账号密码大家各显神通了。





2

 代码审计漏洞挖掘


“环境部署完成后,

通过代码审计深入发现安全漏洞


1、第三方组件漏洞审计

本项目是基于Maven构建的。对于Maven项目,我们首先从pom.xml文件开始审计引入的第三方组件是否存在漏洞版本,然后进一步验证该组件是否存在漏洞点。

本项目引入的组件以及组件版本整理如下:

组件名称 组件版本
SpringBoot 2.1.0.RELEASE
mysql 5.1.40
shiro 1.4.0

整理完成后,如何确定该组件版本存在漏洞?最简单的方法无疑于从搜索引擎进行搜索,比如关键字:shiro 漏洞。进一步可从组件官网,CVE,CNVD,CNNVD等网站查询。

2、组件漏洞代码审计

通过查看pom.xml文件中引入的第三方插件,且经过搜索查询,发现shiro引入了存在漏洞的版本为1.4.0,我们进一步验证是否存在漏洞。

2.1、Shiro漏洞代码审计

系统存在低版本Shiro为1.4.0,该版本存在安全漏洞。

2.1.1、Shiro简述

Apache Shiro是一个Java安全框架,有身份验证、授权、密码和会话管理等功能。

2.1.1、Shiro漏洞简述

以下为Shiro近几年漏洞。

CVE编号 简述 版本
CVE-2016-4437 RememberMe 反序列化漏洞 shiro 1.x < 1.2.5
CVE-2016-6802 Context Path 路径标准化导致绕过 shiro < 1.3.2
CVE-2019-12422 Padding Oracle Attack & CBC Byte-Flipping Attack shiro < 1.4.2 (1.2.5, 1.2.6, 1.3.0, 1.3.1, 1.3.2, 1.4.0-RC2, 1.4.0, 1.4.1)
CVE-2020-1957 Spring 与 Shiro 对于 "/" 和 ";" 处理差异导致绕过 shiro < 1.5.2
CVE-2020-11989 Shiro 二次解码导致的绕过以及 ContextPath 使用 ";" 的绕过 shiro < 1.5.3
CVE-2020-13933 由于 Shiro 与 Spring 处理路径时 URL 解码和路径标准化顺序不一致导致的使用 "%3b" 的绕过 shiro < 1.6.0
CVE-2020-17510 由于 Shiro 与 Spring 处理路径时 URL 解码和路径标准化顺序不一致导致的使用 "%2e" 的绕过 shiro < 1.7.0
CVE-2020-17523 Shiro 匹配鉴权路径时会对分隔的 token 进行 trim 操作导致的使用 "%20" 的绕过 shiro < 1.7.1
CVE-2021-41303 由于 Shiro 的 BUG 导致特定场景的绕过 shiro < 1.8.0

由上可知,本项目使用的Shiro 1.4.0版本存在多个漏洞,大致可以分为两个。一是Padding Oracle Attack漏洞,二是通过路径匹配问题造成权限绕过漏洞

2.2、权限绕过漏洞验证

【加入炼石计划,解锁该部分,学习完整版课程,加入方式在下面

2.3、Oracle Padding Attack漏洞验证

【加入炼石计划,解锁该部分,学习完整版课程,加入方式在下面


3、单点漏洞审计

针对单点漏洞进行代码审计,通过常规搜索技巧发现是否存在漏洞,尽管不存在漏洞也要简单写出来审计过程。

3.1、验证码重复利用漏洞代码审计

【加入炼石计划,解锁该部分,学习完整版课程,加入方式在下面

3.2、CSRF漏洞代码审计

【加入炼石计划,解锁该部分,学习完整版课程,加入方式在下面

3.3、XSS漏洞代码审计

【加入炼石计划,解锁该部分,学习完整版课程,加入方式在下面


加入炼石计划

方式一:

加入“玄说安全”知识星球”,公众号后台回复关键字xq

方式二:

加入炼石计划专项训练知识星球

“看的不过瘾?可以加入炼石计划

学习完整课程

关于炼石计划详细介绍

戳下方文章”

JavaWeb代码审计实战开源系统学习心得,赶紧进来看!!!

或者扫描下方二维码直接加入学习~

加入后,记得看置顶文章哦~


周末开始卷,炼石计划之50套JavaWeb代码审计(四):有趣的进销存系统




原文始发于微信公众号(玄魂工作室):周末开始卷,炼石计划之50套JavaWeb代码审计(四):有趣的进销存系统

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月18日23:10:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  周末开始卷,炼石计划之50套JavaWeb代码审计(四):有趣的进销存系统 http://cn-sec.com/archives/833710.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: