zoukankan      html  css  js  c++  java
  • 漏洞复现-Spring Security OAuth2 远程命令执行漏洞(CVE-2016-4977)

    漏洞原理

    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

    反弹成功,从返回页面来看,这里实际上是利用抛出的错误消息来执行恶意代码的,漏洞代码的位置应该在内部错误处理的代码中。

    本文仅用于技术学习和交流,严禁用于非法用途,否则产生的一切后果自行承担。

  • 相关阅读:
    Laravel 5.2 使用 JWT 完成多用户认证 | Laravel China 社区
    (上线时清缓存)laravel 5.1 的程序性能优化(配置文件)
    linux计划任务及压缩归档
    用户及用户管理
    vim编辑器
    linux进阶命令
    权限管理
    linux基础命令2
    linu基础命令1
    连接Xshell
  • 原文地址:https://www.cnblogs.com/sallyzhang/p/12373069.html
Copyright © 2011-2022 走看看