# Parameter Fuzzing - POST

A principal diferença entre `POST`solicitações e `GET`solicitações é que `POST`as solicitações não são passadas com a URL e não podem simplesmente ser anexadas após um `?`símbolo. `POST`as solicitações são passadas no `data`campo da solicitação HTTP.&#x20;

```
ffuf -w /opt/useful/SecLists/Discovery/Web-Content/burp-parameter-names.txt:FUZZ -u http://admin.academy.htb:PORT/admin/admin.php -X POST -d 'FUZZ=key' -H 'Content-Type: application/x-www-form-urlencoded' -fs xxx
   /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v1.1.0-git
________________________________________________

 :: Method           : POST
 :: URL              : http://admin.academy.htb:PORT/admin/admin.php
 :: Wordlist         : FUZZ: /opt/useful/SecLists/Discovery/Web-Content/burp-parameter-names.txt
 :: Header           : Content-Type: application/x-www-form-urlencoded
 :: Data             : FUZZ=key
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200,204,301,302,307,401,403
 :: Filter           : Response size: xxx
________________________________________________

id                      [Status: xxx, Size: xxx, Words: xxx, Lines: xxx]
<...SNIP...>
```

Como podemos ver desta vez, obtivemos alguns acertos, o mesmo que obtivemos durante a difusão `GET`e outro parâmetro, que é `id`. Vamos ver o que obtemos se enviarmos uma `POST`solicitação com o `id`parâmetro. Podemos fazer isso com `curl`, da seguinte maneira:

<pre><code><strong>curl http://admin.academy.htb:PORT/admin/admin.php -X POST -d 'id=key' -H 'Content-Type: application/x-www-form-urlencoded'
</strong></code></pre>

Como podemos ver, a mensagem agora diz `Invalid id!`.
