vlambda博客
学习文章列表

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

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

闪石星曜


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

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

供大家学习

如果大家想学习完整更多内容

欢迎加入炼石计划训练营

但不妨现在先学习下本套课程吧~

··· ···




1

 项目安装


A、基础环境部署

1、项目介绍

oasys是一个OA办公自动化系统,使用Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。作为初学springboot的同学是一个很不错的项目。

2、涉及技术

2.1、前端

技术 名称 版本 官网
freemarker 模板引擎 springboot1.5.6.RELEASE集成版本 https://freemarker.apache.org/
Bootstrap 前端UI框架 3.3.7 http://www.bootcss.com/
Jquery 快速的JavaScript框架 1.11.3 https://jquery.com/
kindeditor HTML可视化编辑器 4.1.10 http://kindeditor.net
My97 DatePicker 时间选择器 4.8 Beta4 http://www.my97.net/

2.2、后端

技术 名称 版本 官网
SpringBoot SpringBoot框架 1.5.6.RELEASE https://spring.io/projects/spring-boot
JPA spring-data-jpa 1.5.6.RELEASE https://projects.spring.io/spring-data-jpa
Mybatis Mybatis框架 1.3.0 http://www.mybatis.org/mybatis-3
fastjson json解析包 1.2.36 https://github.com/alibaba/fastjson
pagehelper Mybatis分页插件 1.0.0 https://pagehelper.github.io

3、部署流程

本项目基于Windows 10系统,Java版本为1.8.0_261,Mysql使用的为PHPstudy内置集成的。

①、打开mysql,创建数据库create database oasys,切换使用oasys数据库use oasys,如下图所示:

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

②、将oasys/oasys.sql文件导入到oasys数据库中,使用命令source 绝对路径/oasys.sql,注意路径要使用正斜杠/,如下图所示:

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

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

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

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

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

⑤、点击启动Run/Debug Configurations...本项目,启动成功如下图所示:

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

⑥、浏览器访问http://127.0.0.1:8088,进入登录页面,如下图所示:

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

下面是我们漏洞挖掘的主场秀


XSS和CSRF组合拳

经过多处XSS漏洞挖掘,发现基本都为POST型XSS,也就是参数是放在Body体中,通过POST方式发送到后端。现在全面HTTPS时代,对于POST请求中的参数我们没办法劫持,也就无法写入攻击语句。那么这也就导致除了第三个XSS漏洞,第一个和第二个漏洞都失去了攻击意义,只能自娱自乐。经管也是存储型XSS,但仅能自己XSS自己。

但是,经过我们深入挖掘还发现了CSRF漏洞。那么,XSS和CSRF能打出怎么样的配合呢?

思路很简单,在CSRF的POC中将XSS验证语句嵌入到表单中,诱导受害人点击,这样就完成了XSS和CSRF配合打出攻击的效果了。(比如获取Cookie/Session)

系统能存在XSS漏洞大多都能配合CSRF进行攻击,我们举例说明。

①、同样访问用户面板功能,点击写便签,输入任意内容,使用BurpSuite拦截数据包,发送到Repeater模块,如下图所示:

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

②、将titleconcent参数值改为XSS验证语句,如下图所示:

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

③、鼠标右键点击数据包,然后再点击Generate CSRF PoC,可以看到参数值改为了XSS攻击验证语句,如下图所示:

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

④、然后选择Test in browser,复制测试链接,粘贴到浏览器中,点击Submit request,发生了弹框行为,如下图所示:

炼石计划之50套JavaWeb代码审计(二):SpringBoot架构的OA系统代审之路

至此,我们通过CSRF漏洞触发了XSS漏洞。那么POST型XSS漏洞也不在鸡肋,如何找到可以配的CSRF漏洞,也是可以打出大量伤害。




4

 完整目录


“本套课程完整目录如下,

如果上面内容学的不过瘾,

大家可以从下面加入炼石计划”






5

 内卷开始


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

简单说说炼石计划,

每一套练习环境都是有针对性的精挑细选,

不同的系统包含不同类型的漏洞。

并且每一套环境我都希望大家真心动手操作,

不要以为仅仅看了文章就觉得自己学会了。

所以,我会先分享漏洞环境,让大家先行操作练习

然后我再分享课程文章,供大家学习操作

如果你喜欢这种模式,不妨赶紧来学习。”


关于炼石计划详细介绍,大家可以点击下面这篇文章


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

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

玄说安全知识星球成员免费学习本系列课程。



—END—