# Cabeçalhos hop-by-hop
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
[**RootedCON**](https://www.rootedcon.com/) é o evento de cibersegurança mais relevante na **Espanha** e um dos mais importantes na **Europa**. Com **a missão de promover o conhecimento técnico**, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.
{% embed url="https://www.rootedcon.com/" %}
## O que é um cabeçalho hop-by-hop?
Um cabeçalho hop-by-hop é um cabeçalho projetado para ser processado e consumido pelo proxy que está manipulando a solicitação, em oposição a um cabeçalho end-to-end.
De acordo com o [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1), a especificação HTTP/1.1 trata os seguintes cabeçalhos como hop-by-hop por padrão: `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization` e `Proxy-Authenticate`. Ao encontrar esses cabeçalhos em uma solicitação, um proxy compatível deve processar ou executar o que esses cabeçalhos estão indicando e não encaminhá-los para o próximo hop.
Além desses padrões, uma solicitação [também pode definir um conjunto personalizado de cabeçalhos para serem tratados como hop-by-hop](https://tools.ietf.org/html/rfc2616#section-14.10) adicionando-os ao cabeçalho `Connection`, como abaixo:
```
Connection: close, X-Foo, X-Bar
```
## A teoria sobre o abuso de cabeçalhos hop-by-hop
Em teoria, os proxies devem remover os cabeçalhos hop-by-hop recebidos antes de enviá-los para o próximo endereço. Mas você pode encontrar na prática que isso é feito por alguns proxies e outros apenas enviam todos os cabeçalhos adicionando seu próprio cabeçalho `Connection`.
![](<../.gitbook/assets/image (138).png>)
## Testando exclusões hop-by-hop
Se você encontrar um cabeçalho que faz com que a resposta do servidor mude se ele estiver definido ou não, então você pode procurar por exclusões hop-by-hop. Por exemplo, o cabeçalho cookie fará com que a resposta do servidor seja dramaticamente diferente se ele estiver definido (com um conteúdo válido) ou não.
Então, envie uma solicitação com um cabeçalho válido e com este valor do cabeçalho Connection `Connection: close, Cookie` se a resposta for a mesma que se o cookie não tivesse sido enviado, então há um proxy removendo cabeçalhos.
Você pode descobrir se a resposta do servidor é diferente se um cabeçalho for excluído usando esta técnica usando [este script](https://gist.github.com/ndavison/298d11b3a77b97c908d63a345d3c624d). Então, se você passar uma lista de cabeçalhos conhecidos, como [esta](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/BurpSuite-ParamMiner/lowercase-headers), você pode observar quais cabeçalhos estão causando efeitos apesar de não estarem na sua solicitação original:
```
for HEADER in $(cat headers.txt); do python poison-test.py -u "https://target" -x "$HEADER"; sleep 1; done
```
Este ciclo percorrerá toda a lista de cabeçalhos e imprimirá se a presença dele na lista hop-by-hop criou um código de status diferente ou um tamanho de corpo de resposta.
## Abusando do X-Forwarded-For
Em geral, os proxies adicionam os IPs dos clientes dentro do cabeçalho `X-Forwarded-For` para que o próximo salto saiba de onde vem a petição. No entanto, se um atacante enviar um valor de Conexão como `Connection: close, X-Forwarded-For` e o primeiro proxy enviar os cabeçalhos hop-by-hop com seus valores (ele envia o valor especial de Conexão), então o segundo valor pode excluir o cabeçalho X-Forward-For.\
No final, o aplicativo final não saberá quem enviou a solicitação e pode pensar que foi o último proxy, e nesse cenário um atacante pode ser capaz de acessar recursos protegidos por lista branca de IP (talvez algum `/admin`?).
Dependendo do sistema que está sendo visado, você também pode ter `Forwarded`, `X-Real-IP` e um monte de outros que são menos comuns.
## Detectando Proxies e identificando serviços
Esta técnica pode ser útil para detectar proxies (usando a técnica de cookie) ou mesmo para detectar serviços. Por exemplo, se você abusar dessa técnica para excluir o cabeçalho `X-BLUECOAT-VIA` e um erro for lançado, então você descobriu que o Bluecoat estava sendo usado.
## Outros ataques
* Para um possível envenenamento de cache DoS abusando dessa técnica, leia o link original
* Isso pode ser útil em ataques que permitem que você insira novos cabeçalhos (baixa probabilidade)
* Também pode ser útil para contornar funcionalidades defensivas. Por exemplo, se a falta de um cabeçalho significa que uma solicitação não deve ser processada por um WAF, você pode contornar um WAF com essa técnica.
## Referências
{% embed url="https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers" %}
[**RootedCON**](https://www.rootedcon.com/) é o evento de cibersegurança mais relevante na **Espanha** e um dos mais importantes na **Europa**. Com **a missão de promover o conhecimento técnico**, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.\
{% embed url="https://www.rootedcon.com/" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.