漏洞复现-Spring Security OAuth2 远程命令执行漏洞(CVE-2016-4977)
2023-02-18 16:42:05 时间
漏洞原理
Spring Security OAuth2处理认证请求的时候如果使用了whitelabel视图,response_type参数值会被当做Spring SpEL来执行,恶意攻击者通过构造response_type值可以触发远程代码执行漏洞
复现环境
在ubuntu 16.04虚拟机中用vulhub靶场提供的docker容器来复现
jdk版本1.7
python版本3.5
影响版本
Spring Security OAuth 2.3到2.3.2
Spring Security OAuth 2.2到2.2.1
Spring Security OAuth 2.1到2.1.1
Spring Security OAuth 2.0到2.0.14
复现过程
1. 进入vulhub目录:spring/CVE-2016-4977,启动docker容器
2. 对反弹shell的POC进行base64编码(java反弹shell都需要先编码,不然不会成功,原因貌似是runtime不支持管道符)
3. 用vulhub提供的poc.py生成反弹shell的POC:
4. 监听反弹端口,并访问下面的url:
http://your-ip:8080/oauth/authorize?response_type=上面的那一长串POC&client_id=acme&scope=openid&redirect_uri=http://test
反弹成功,从返回页面来看,这里实际上是利用抛出的错误消息来执行恶意代码的,漏洞代码的位置应该在内部错误处理的代码中。
本文仅用于技术学习和交流,严禁用于非法用途,否则产生的一切后果自行承担。
相关文章
- 循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理
- 循序渐进VUE+Element 前端应用开发(12)--- 整合ABP框架的前端登录处理
- 循序渐进VUE+Element 前端应用开发(11)--- 图标的维护和使用
- 循序渐进VUE+Element 前端应用开发(10)--- 基于vue-echarts处理各种图表展示
- 循序渐进VUE+Element 前端应用开发(8)--- 树列表组件的使用
- 循序渐进VUE+Element 前端应用开发(3)--- 动态菜单和路由的关联处理
- 循序渐进VUE+Element 前端应用开发(2)--- Vuex中的API、Store和View的使用
- 循序渐进VUE+Element 前端应用开发(1)--- 开发环境的准备工作
- 利用微信公众号实现商品的展示和支付(2)
- 利用微信公众号实现商品的展示和支付(1)
- Modbus协议和应用开发介绍
- ABP开发框架前后端开发系列---(16)ABP框架升级最新版本的经验总结
- 微信门户开发框架-使用指导说明书(2)--基于框架的开发过程
- 微信门户开发框架-使用指导说明书
- 在EasyUI项目中使用FileBox控件实现文件上传处理
- 使用FastReport报表工具实现信封套打功能
- 使用FastReport报表工具生成图片格式文档
- 在微信开发框架中增加对菜单分组的管理,方便多个项目自由切换处理和功能测试
- 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库
- 在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动