Os métodos de bular os sistemas de upload de imagens em sites são muito variados.
Nesse tutorial, irei explica os métodos que são mais conhecidos e claro os melhores.
Bulamos esses sistemas para colocar outra extensão (.jpg,.png e etc) nos arquivos "maliciosos" ou para obter algum tipo de privilégio no site ou no servidor em que o arquivo irá ser hospedado, para termos esses privilégios, teremos que fazer o upload de uma shell, no caso em PHP ou em C, que será demonstrado aqui nesse tutorial.
Quando você vai upar uma shell em PHP em um sistema de upload de imagens .jpg, ele através do filtro de extensões vai te dar um aviso de que não é possível fazer upload desse arquivo.
O que temos que fazer é descobrir porque ele não nos dá essa permissão.
A primeira coisa que temos que verificar é se ele pega apenas a primeira extensão depois do primeiro ponto (.), por isso iremos tentar upar nossa shell da seguinte forma renomeando o arquivo:
minhashell.jpg.php
Assim ele seria reconhecido como um arquivo PHP, pois a real extensão é .php.
Na maioria das vezes essa técnica funciona, mas é claro que tem sites que não irão aceitar isso, por isso iremos tentar de outra forma.
Alguns sites pegam apenas a última extensão do arquivo, mas apenas reconhecem a primeira extensão depois do ponto, assim nós podemos upar a shell da seguinte forma:
minhashell.php.jpg OU minhashell.jpg.php
Assim ele seria reconhecido como um arquivo PHP, pois a extensão real é jpg, mas como é eliminada a segunda extensão, então ele seria renomeado pelo filtro para um arquivo .php.
Um outro tipo de filtro vulnerável é o filtro em que se pode anular a última extensão através de um comando null antes da última extensão.
O arquivo renomeado ficaria assim:
minhashell.php.jpg OU minhashell.jpg. php
O filtro iria aceitar o arquivo por ele ser uma extensão .jpg, porém como à um comando anulando a última extensão, então ele reconheceria o arquivo somente como .php.
A maioria dos sistemas de upload reconhece apenas a extensão do arquivo, mas não o tipo de arquivo, isso é muito perigoso para o servidor, pois um arquivo pode ter uma extensão .jpg mas ser um arquivo do tipo PHP.
Com isso o arquivo terá uma extensão .jpg e será hospedado no servidor, mas através de um exploit ele pode ser renomeado ou você pode modificar um arquivo JPG com linhas em PHP com um editor hexadecimal, mas na maioria das vezes o arquivo corrompe, ficando assim impossibilitado de seguir qualquer comando estabelecido por você.
Outro caso é que o servidor apenas reconhece o tipo de arquivo, mas não a extensão.
Um modo de mudar essa situação é usando o edjpgcom, um software próprio para fazer esse tipo de modificação em arquivo JPG.
http://www.4shared.com/file/137622963/4ea4387b/edjpgcom.html
A primeira coisa que você vai fazer é criar um pasta chamada jpg no seu C:\ e extrair esse arquivo nessa pasta.
Agora abra o CMD (prompt de comando).
Agora dê um
Citação:
cd c:\jpg
Dê o seguinte comando agora:
edjpgcom.exe suaimagem.jpg
Irá aparecer uma janela e no campo de texto terá um texto, remova esse texto e ponha sua linha de comando em PHP, que será sua shell/exploit e salve.
Não coloque comandos muito grandes, pois irá corromper o arquivo, ponha apenas algumas linhas (a shell c99 não funciona nesse caso pois ela é grande).
Agora renomeie o arquivo para .php e faça upload pelo sistema de upload do site e pronto, não irá mais aparecer aquele erro de "Invalid file Dimensions".
Ou podem fazer do seguinte modo:
GIF89a;
0 comentários:
Postar um comentário