影响版本
Spring Security OAuth 1.0.0到1.0.5
Spring Security OAuth 2.0.0到2.0.9
Spring Security OAuth 2.0到2.0.14
Spring Security OAuth 2.1到2.1.1
Spring Security OAuth 2.2到2.2.1
Spring Security OAuth 2.3到2.3.2
漏洞原理
是该版本的Spring的一个错误页面,存在参数获取未进行过滤,导致可以直接对服务器执行系统权限
具体过程
首先打开靶场环境后可以看到
在url后面拼接
/oauth/authorize?response_type=${233*233}&client_id=acme&scope=openid&redirect_uri=http://test
之后就可以看到233*233被执行。
进一步复现只需要将233*233用payload替换掉就可以了
然后用vulhub环境下的poc对payload进行编码就可以
准备好nc就可以连接到机器
参考博客文章
漏洞复现-CVE-2016-4977-Spring远程代码执行 - 铺哩 - 博客园 (cnblogs.com)
SpringSecurityOauth RCE (CVE-2016-4977) 分析与复现 - ka1n4t - 博客园 (cnblogs.com)