Share
## https://sploitus.com/exploit?id=56A19B7E-32E6-595C-B2A6-1F1DCEA752D1
# CVE-2024-23113

该脚本旨在检测CVE-2024-23113漏洞,这是FortiGate FGFM服务(FortiGate与FortiManager协议)在TCP端口541上运行时存在的格式字符串漏洞。此漏洞的成因在于攻击者可以控制格式字符串,从而可能导致远程代码执行(RCE)或其他意外行为。FGFM服务用于FortiGate设备和FortiManager之间的配置管理通信,未修补的版本在处理输入时存在不当,因而容易受到格式字符串漏洞的利用。

## 脚本工作原理

1. **网络连接设置**:
   - 脚本首先在目标设备的端口541上设置SSL/TLS连接。
   - 它使用`ssl.SSLContext`对象,并禁用了证书验证,以便与可能使用自签名证书的设备建立连接。

2. **有效负载构造**:
   - 连接建立后,脚本使用格式字符串漏洞(如`authip=%n`)构造恶意有效负载。`%n`指令告诉系统将到目前为止输出的字节数写入变量,这可能导致内存损坏。
   - 该恶意有效负载通过已建立的连接发送至目标设备。

3. **检测逻辑**:
   - 脚本接着检查目标设备在收到有效负载后的行为。
   - 如果连接突然中断并引发SSL警告,这表明目标存在漏洞,因为触发了格式字符串漏洞的保护机制(例如,glibc中的_FORTIFY_SOURCE)。
   - 如果连接保持打开状态,则表明目标设备可能已经打上补丁。

## 使用说明

1. **运行脚本**:
   - 使用Python 3运行脚本,执行以下命令:

     ```sh
     python POC-CVE-2024-23113.py
     ```

2. **输入主机名/IP**:
   - 系统会提示你输入要检查是否存在漏洞的主机名或IP地址。如果想退出,输入`exit`即可。

3. **输出结果**:
   - 如果目标设备存在漏洞,脚本会输出:

     ```
     [!] 警告:<hostname> 存在漏洞!
     ```

   - 如果目标设备已打上补丁,脚本会输出:

     ```
     [+] <hostname> 看起来已打上补丁。
     ```

## 要求

- 运行脚本的机器需要安装Python 3。
- 必须有对目标设备的网络访问权限,并确保端口541是开放的。
- 目标设备上必须运行FGFM服务。