💡
原文约1000字/词,阅读约需4分钟。
📝
内容提要
本文分享了在Web 2挑战中的经验,分析Java后端服务源代码,发现RCE漏洞。利用commons-collections4库的gadget chain构造payload,并通过前端服务的SSRF漏洞成功获取flag。此外,Thymeleaf库的SSTI漏洞也可导致RCE。整个过程充满挑战,结果不尽如人意。
🎯
关键要点
- 文章分享了在Web 2挑战中的经验,分析Java后端服务源代码,发现RCE漏洞。
- 利用commons-collections4库的gadget chain构造payload,通过前端服务的SSRF漏洞成功获取flag。
- 后端服务使用Java 11和Spring Boot框架,存在反序列化漏洞。
- payload需要经过gzip压缩和base64编码,且限制在2048字符以内。
- 通过设置定时器,后端服务可以定期读取flag并发送。
- 前端服务存在SSRF漏洞,可以通过curl命令调用后端服务。
- 通过urlparse和curl的解析差异,成功绕过了过滤机制。
- 后端服务也存在Thymeleaf库的SSTI漏洞,可以导致RCE。
- 整个过程充满挑战,最终结果不尽如人意。
❓
延伸问答
在Web 2挑战中发现了什么漏洞?
发现了RCE漏洞和SSTI漏洞。
如何利用commons-collections4库构造payload?
通过gadget chain构造payload,并进行gzip压缩和base64编码。
前端服务的SSRF漏洞是如何被利用的?
通过curl命令调用后端服务,利用urlparse和curl的解析差异绕过过滤机制。
后端服务使用了哪些技术栈?
后端服务使用Java 11和Spring Boot框架。
payload的大小限制是什么?
payload在gzip压缩后限制在2048字符以内。
文章中提到的最终结果是什么?
整个过程充满挑战,最终结果不尽如人意。
➡️