# Vhost Fuzzing

### Vhosts vs. Sub-domains

A principal diferença entre VHosts e subdomínios é que um VHost é basicamente um 'subdomínio' servido no mesmo servidor e tem o mesmo IP, de modo que um único IP pode servir dois ou mais sites diferentes.

### Vhosts Fuzzing

Para procurar VHosts, sem adicionar manualmente a lista de palavras inteira ao nosso arquivo `/etc/hosts`, estaremos confundindo os cabeçalhos HTTP, especificamente o `Host:` cabeçalho.

```bash
ffuf -w /opt/useful/SecLists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ -u http://academy.htb:PORT/ -H 'Host: FUZZ.academy.htb'
```

### Filtering

`Ffuf`oferece a opção de combinar ou filtrar um código HTTP específico, tamanho de resposta ou quantidade de palavras. Podemos ver isso com `ffuf -h`:

<pre class="language-bash"><code class="lang-bash"><strong>$ ffuf -h
</strong>...SNIP...
MATCHER OPTIONS:
  -mc              Match HTTP status codes, or "all" for everything. (default: 200,204,301,302,307,401,403)
  -ml              Match amount of lines in response
  -mr              Match regexp
  -ms              Match HTTP response size
  -mw              Match amount of words in response

FILTER OPTIONS:
  -fc              Filter HTTP status codes from response. Comma separated list of codes and ranges
  -fl              Filter by amount of lines in response. Comma separated list of line counts and ranges
  -fr              Filter regexp
  -fs              Filter HTTP response size. Comma separated list of sizes and ranges
  -fw              Filter by amount of words in response. Comma separated list of word counts and ranges
&#x3C;...SNIP...>
</code></pre>

Neste caso, não podemos usar correspondência, pois não sabemos qual seria o tamanho da resposta de outros VHosts. Sabemos o tamanho da resposta dos resultados incorretos, que, como visto no teste acima, é `900`, e podemos filtrá-lo com `-fs 900`. Agora, vamos repetir o mesmo comando anterior, adicionar o sinalizador acima e ver o que obtemos:

```bash
$ ffuf -w /opt/useful/SecLists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ -u http://academy.htb:PORT/ -H 'Host: FUZZ.academy.htb' -fs 900
```

