内容提要
本文分享了在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。
-
整个过程充满挑战,最终结果不尽如人意。
延伸解读
RCE漏洞的利用
文章中提到的RCE漏洞主要通过commons-collections4库的gadget chain实现。这种漏洞利用方式在Java后端服务中较为常见,开发者应关注反序列化操作的安全性,避免使用不安全的库版本。
SSRF漏洞的绕过
通过对前端服务的SSRF漏洞进行分析,文章展示了如何利用urlparse和curl的解析差异成功绕过过滤机制。这提醒开发者在实现URL过滤时,需考虑不同解析方式的潜在风险,确保安全性。
Thymeleaf的SSTI漏洞
文章最后提到的Thymeleaf库的SSTI漏洞同样值得注意。开发者在使用模板引擎时,应仔细审查输入内容的处理方式,以防止恶意代码的执行,确保应用的安全性。
延伸问答
在Web 2挑战中发现了什么漏洞?
发现了RCE漏洞和SSTI漏洞。
如何利用commons-collections4库构造payload?
通过gadget chain构造payload,并进行gzip压缩和base64编码。
前端服务的SSRF漏洞是如何被利用的?
通过curl命令调用后端服务,利用urlparse和curl的解析差异绕过过滤机制。
后端服务使用了哪些技术栈?
后端服务使用Java 11和Spring Boot框架。
payload的大小限制是什么?
payload在gzip压缩后限制在2048字符以内。
文章中提到的最终结果是什么?
整个过程充满挑战,最终结果不尽如人意。