代码审计 | 你一定会审的java系统
本文由
创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
1.背景
一转眼2024年了,小帅的朋友----小胖今年就要毕业了,作为一个计算机科学与技术的大学生,在本科毕业的时候都会贡献出一套学生管理系统这样的毕业设计留给自己的母校,而小帅一个不甘平庸的安服仔,早早就开始布局java代码审计 ( 你这是看不起php? )。但是奈何网上的开源系统要么搭建繁琐,要么代码量巨大,功能太多,再或者就是一些java组件的代码审计,不适合新手入门,导致学习进度缓慢。既然小胖写了一套系统,这不刚好送上门吗?开干!
2.环境
问小胖要来部署文档,梦,开始了!
源码下载
https://gitee.com/huang-yk/student-manage
环境
1.Windows 10 2.jdk "1.8.0_172" 3.Mysql版本为5.7, PHPstudy集成的。 4.IDEA版本随意 2022.2 专业版
1.创建数据库
cms
2.导入sql文件
3.修改 application-local.yml 核心配置文件
4.加载 pom.xml 中的依赖
5.运行 启动文件
访问
http://localhost:8888/login/loginPage admin/123456
3.目标
通过该项目, 把java cms的代码审计checklist编写起来
4.审计
看一下源码的目录结构
先瞜一眼pom.xml , 很明显是一个spring的项目
审计第三方组件 pom.xml
fastjson mybatis shiro log4j
4.1.fastjson代码审计
使用idea打开项目,shift + ctrl + f 全局搜索,如果你是搜狗输入法请在高级中关闭
全局搜索
parse( parseObject(
无反序列化的函数调用, 漏洞不存在
4.2验证码绕过
直接黑盒测试, 发现登录存在验证码刷新机制
难道就不能爆破了吗?
这里使用burp抓包测试
发现登录失败, 并不是302再次跳转到登录页面, 很有可能存在验证码未在后端刷新存在缺陷, 导致暴力破解漏洞
抓包,尝试爆破
存在验证码缺陷导致的暴力破解漏洞
源码分析
具体漏洞产生的原因就写在代码注释里面了
4.3sql注入
项目使用的是mybatis, 直接全局搜索
${
也是一个没有,不放心, 进入 dao/查看*.xml
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录