Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-23113 PoC — Fortinet FortiOS 格式化字符串错误漏洞

Source
Associated Vulnerability
Title:Fortinet FortiOS 格式化字符串错误漏洞 (CVE-2024-23113)
Description:Fortinet FortiOS是美国飞塔(Fortinet)公司的一套专用于FortiGate网络安全平台上的安全操作系统。该系统为用户提供防火墙、防病毒、IPSec/SSLVPN、Web内容过滤和反垃圾邮件等多种安全功能。 Fortinet FortiOS存在格式化字符串错误漏洞,该漏洞源于使用外部控制的格式字符串,允许攻击者通过特制数据包执行未经授权的代码或命令。
Readme
# CVE-2024-23113

The script is designed to detect CVE-2024-23113, which is a format string vulnerability in the FortiGate FGFM service (FortiGate to FortiManager protocol) running on TCP port 541. The vulnerability occurs because an attacker can control a format string, which could lead to Remote Code Execution (RCE) or other unintended behaviors. The FGFM service allows communication between FortiGate devices and FortiManager for configuration management, and an unpatched version has improper handling of input, making it susceptible to a format string exploit.
How the Script Works

    Network Connection Setup:
        The script first sets up an SSL/TLS connection to the target on port 541.
        It uses the ssl.SSLContext object with certificate verification disabled to establish the connection, as the device might have self-signed certificates.

    Payload Construction:
        Once connected, the script crafts a malicious payload using a format string exploit (authip=%n). The %n directive tells the system to write the number of bytes output so far into a variable, which can potentially lead to memory corruption.
        The crafted payload is sent to the target through the established connection.

    Detection Logic:
        The script then checks the target's behavior in response to the payload.
        If the connection is abruptly terminated and an SSL alert is raised, it suggests that the target is vulnerable because it triggered the format string vulnerability protection mechanisms (e.g., _FORTIFY_SOURCE in glibc).
        If the connection remains open, the target is likely patched.

Usage Instructions

    Run the Script:
        Run the script with Python 3 by executing:

        sh

    python check_vulnerability.py

Enter Hostname/IP:

    You will be prompted to enter a hostname or IP address to check if it is vulnerable.
    If you want to stop, type exit.

Output:

    If the target is vulnerable, the script will output:

[!] Warning: <hostname> is vulnerable!

If the target is patched, it will output:

        [+] <hostname> appears to be patched.

Requirements

    Python 3 installed on the machine running the script.
    Network access to the target device, ensuring port 541 is open.
    The FGFM service must be running on the target device.
File Snapshot

[4.0K] /data/pocs/f8594fb3aac936b766b01a39a7a90855490a4512 ├── [2.2K] POC-CVE-2024-23113.py └── [2.3K] README.md 0 directories, 2 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.