
CVE-2021-27850的概念验证,影响Apache Tapestry,可导致未认证的远程代码执行。
CVE-2021-27850 是一个严重的未授权远程代码执行漏洞,存在于所有最新版本的 Apache Tapestry 中。通过下载 AppModule.class 文件,我们可以泄露用于签署 Apache Tapestry 中所有序列化对象的 HMAC 密钥。
我们在一次真实的渗透测试中遇到了这个 CVE,据我所知,目前还没有关于 Tapestry 如何签署序列化对象的公开利用方法,因此我们决定发布以下 PoC,这是我们深入分析 Apache Tapestry 源码后使用的(笑)。
感谢我的前辈 Fares
1- 克隆此仓库
2- 运行以下命令
javac -classpath commons-codec-1.15/commons-codec-1.15.jar:. Exploit.java
3- 最后运行以下命令:
java -cp commons-codec-1.15/commons-codec-1.15.jar:. Exploit [Tapestry Key] [Ysoserial Payload] [Command To Execute]
其中 [Tapestry Key] 是从 AppModule.class 泄露的 HMAC 密钥,[Ysoserial Payload] 是你想从 ysoserial 使用的 payload,[Command To Execute] 是要执行的命令。

注意: 与通常的 Java 反序列化利用不同,通常执行的命令有限制(不支持管道或特殊字符等),但在这里你可以使用任何复杂的命令,因为我们会在执行命令前添加以下内容:sh -c $@|sh . echo。
参考资料: