HTTP Header Command Injection - X-FORWARDED-FOR - Pentesting Web
Si on observe le fichier firewall.php, on remarque qu'il récupère l'en-tête HTTP_X_FORWARDED_FOR et l'utilise avec sudo pour exécuter une commande :
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
};
system("sudo /usr/sbin/iptables -A INPUT -s " . $ip . " -j ACCEPT");
?>
Étant donné que cette variable est contrôlable via une requête HTTP, nous pouvons injecter une commande arbitraire.
erxploitation
Comme il s'agit d'un en-tête HTTP, nous pouvons injecter une commande, par exemple en utilisant curl pour contacter notre serveur web.
Mise en place d'un serveur web :
Commande d'injection avec curl :

Reverse Shell
Écoute sur le port 443 :
Commande pour obtenir un shell distant :
Une fois connecté, nous sommes l'utilisateur www-data.

Mis à jour
Ce contenu vous a-t-il été utile ?