欢迎来到炼石计划之企业级JavaWeb漏洞挖掘实战
简单来说就是带着大家一起针对企业级JavaWeb系统、网站进行黑盒测试和白盒测试,也就是渗透测试和代码审计的漏洞挖掘。
一共五十期,全部基于JAVA语言,不仅仅有WEB,还会有小程序,APP,接口等环境
每一期都会将练习环境以及部分内容,分享到本公众号,大家不要错过哟。
【进入正题】
第二期_办公OA系统
oasys是一个OA办公自动化系统,使用Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。作为初学springboot的同学是一个很不错的项目。
技术 | 名称 | 版本 | 官网 |
---|---|---|---|
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/ |
技术 | 名称 | 版本 | 官网 |
---|---|---|---|
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 |
本项目基于Windows 10
系统,Java版本为1.8.0_261
,Mysql使用的为PHPstudy内置集成的。
①、打开mysql,创建数据库create database oasys
,切换使用oasys数据库use oasys
,如下图所示:
②、将oasys/oasys.sql
文件导入到oasys数据库中,使用命令source 绝对路径/oasys.sql
,注意路径要使用正斜杠/
,如下图所示:
③、使用IDEA打开oasys项目,等待Maven自动加载依赖项,如果时间较长需要自行配置Maven加速源。几个现象表明项目部署成功。pom.xml
文件无报错,项目代码已编译为class
,Run/Debug Configurations...
处显示可以运行。如下图所示:
④、修改src/main/resouces/application.properties
配置文件内容,具体如下图所示:
⑤、点击启动Run/Debug Configurations...
本项目,启动成功如下图所示:
⑥、浏览器访问http://127.0.0.1:8088
,进入登录页面,如下图所示:
下面是我们漏洞挖掘的主场秀
经过多处XSS漏洞挖掘,发现基本都为POST型XSS,也就是参数是放在Body体中,通过POST方式发送到后端。现在全面HTTPS时代,对于POST请求中的参数我们没办法劫持,也就无法写入攻击语句。那么这也就导致除了第三个XSS漏洞,第一个和第二个漏洞都失去了攻击意义,只能自娱自乐。经管也是存储型XSS,但仅能自己XSS自己。
但是,经过我们深入挖掘还发现了CSRF漏洞。那么,XSS和CSRF能打出怎么样的配合呢?
思路很简单,在CSRF的POC中将XSS验证语句嵌入到表单中,诱导受害人点击,这样就完成了XSS和CSRF配合打出攻击的效果了。(比如获取Cookie/Session)
系统能存在XSS漏洞大多都能配合CSRF进行攻击,我们举例说明。
①、同样访问用户面板
功能,点击写便签,输入任意内容,使用BurpSuite拦截数据包,发送到Repeater模块,如下图所示:
②、将title
和concent
参数值改为XSS验证语句,如下图所示:
③、鼠标右键点击数据包,然后再点击Generate CSRF PoC
,可以看到参数值改为了XSS攻击验证语句,如下图所示:
④、然后选择Test in browser
,复制测试链接,粘贴到浏览器中,点击Submit request
,发生了弹框行为,如下图所示:
至此,我们通过CSRF漏洞触发了XSS漏洞。那么POST型XSS漏洞也不在鸡肋,如何找到可以配的CSRF漏洞,也是可以打出大量伤害的
第一期_RBAC后台管理系统