11
Caríssimos leitores, o artigo que se segue é fruto de uma análise de segurança ao sistema Wareztuga, um sistema de partilha de filmes e séries online. Antecipadamente reuniram-se todos os esforços de modo a contactar a administração do sistema, mas os mesmo não partilham qualquer contacto na sua página. Portanto, o conteúdo apresentado no artigo é meramente informativo e apenas expõe as falhas desta plataforma. - Página Inicial Na imagem acima é apresentada uma página exemplo do primeiro contacto que um utilizador tem com o sistema (website). Uma página bastante cativante e funcional, que disponibiliza à partida todos as secções para que um utilizador navegue no sistema de uma forma intuitiva. No topo da página é apresentada uma hiperligação que permite aos utilizadores registados efetuar a autenticação, e consequentemente o estabelecimento de sessão para acesso aos conteúdos. Seguidamente são apresentados os devidos menus de navegação, assim como, os filmes mais recentes ou em destaque. Existe também a possibilidade do utilizador realizar pesquisas de filmes na caixa de pesquisa ou no separador disponibilizado (Filmes, Séries, etc). Neste artigo não será feita uma análise a todos os procedimentos e funções do sistema. Somente serão discutidos aqueles que foram classificados como perigosos e expostos a furto de informação, que prejudicam seriamente o bom funcionamento do sistema.

Análise de vulnerabilidades ao sistema Wareztuga

Embed Size (px)

DESCRIPTION

Análise de vulnerabilidades ao sistema Wareztuga

Citation preview

Page 1: Análise de vulnerabilidades ao sistema Wareztuga

Caríssimos leitores, o artigo que se segue é fruto de uma análise de segurança ao sistemaWareztuga, um sistema de partilha de filmes e séries online.

Antecipadamente reuniram-se todos os esforços de modo a contactar a administração do sistema,mas os mesmo não partilham qualquer contacto na sua página. Portanto, o conteúdo apresentado noartigo é meramente informativo e apenas expõe as falhas desta plataforma.

- Página Inicial

Na imagem acima é apresentada uma página exemplo do primeiro contacto que um utilizador temcom o sistema (website). Uma página bastante cativante e funcional, que disponibiliza à partidatodos as secções para que um utilizador navegue no sistema de uma forma intuitiva.

No topo da página é apresentada uma hiperligação que permite aos utilizadores registados efetuar aautenticação, e consequentemente o estabelecimento de sessão para acesso aos conteúdos.Seguidamente são apresentados os devidos menus de navegação, assim como, os filmes maisrecentes ou em destaque. Existe também a possibilidade do utilizador realizar pesquisas de filmesna caixa de pesquisa ou no separador disponibilizado (Filmes, Séries, etc).

Neste artigo não será feita uma análise a todos os procedimentos e funções do sistema. Somenteserão discutidos aqueles que foram classificados como perigosos e expostos a furto de informação,que prejudicam seriamente o bom funcionamento do sistema.

Page 2: Análise de vulnerabilidades ao sistema Wareztuga

- Página de Login

Na página login.php podem ser análisados alguns pormenores interessantes. Segue em seguida oefetivo conteúdo da página.

Dando uma vista de olhos à formatação da página HyperText Markup Language (HTML), podeafirmar-se que está impecável, mas derivado da observação do código-fonte da mesma, foramdetectadas algumas curiosidades. Em seguida, é apresentado um trecho do código-fonte.

Logo no início da inclusão de ficheiros Javascript, saltou à vista um ficheiro convidativo a analisar:

-View/templates/default/includes/js/newfunctions.js

O nome do ficheiro fala por si, será maioritáriamente a ferramenta de trabalho do artigo.Um pouco mais abaixo desta inclusão, é possível observar que a plataforma faz uso da APIFlowplayer (http://flowplayer.org), esta é usada na visualização dos filmes no sistema. Um assuntoa abordar no final do artigoé de "como tirar partido desta funcionalidade".

A título de curiosidade, entre as linhas 175 e 179 existe uma <div> marcada como escondida, quecontém a informação de contacto do Wareztuga. Visto não ser disponibilizada qualquer informaçãode contacto da página (pelo menos visível), foi possível constatar um endereço de contactoescondido. A seguinte imagem apresenta a informação referente ao endereço de e-mail.

Page 3: Análise de vulnerabilidades ao sistema Wareztuga

Não deixa de ser interessante esta curiosidade. No entanto, e como compromisso do bem, osadministradores do sistema foram notificados através do endereço de e-mail oculto na página. Noconteúdo do e-mail, foi explicito que no presente blog iria ser publicado dentro de duas semanasuma análise em detalhe do sistema Wareztuga. Nenhum feedback foi recebido por parte daadministração do sistema.

Em seguimento, outros links com um alto nível de suspeita foram detetados umas linhas de códigoabaixo.

Os links para a página movie.php carecem de alguma atenção. É sabido que nos dias de hoje asaplicações web-based sofrem ataques sucessivos de XSS (Cross-site scripting) e SQLi (SQLInjection). Foi realizada uma análise a este tema, através dos links referidos na imagem anterior.

1. Análise SQLi e XSS

Como conhecidos, os ataques de injeção de SQL (SQLi) e injeção de Javascript (XSS) são dos maisusuais na Internet. Como tal, o presente sistema não é excepção! Foi conseguido obter os seguinteslinks através do código-fonte da página para uma posterior análise de laboratório de forma acomprovar a afirmação.

Links de teste:

A página movies.php é uma das páginas do sistema. Esta tem parameterização, isto é, recebeargumentos via GET. (Consultar o seguinte link no blog para maior informação:http://infptavares.blogspot.pt/2012/07/metodo-get-post-php.html )

Através da parameterização é possível observar que o sistema é vulnerável a injecção, neste casoapenas de XSS. Explorando as vulnerabilidades, é possível tirar o máximo proveito e efetuar umaintrusão, em último caso, no sistema. Na sua maioria, e o mais comum, é sem dúvida o furto dedados pessoais (dados de autenticação) e desfiguração da página.

Em seguida segue uma listagem dos tipos de processos usados na investigação.

- Exibição de uma imagem na página. - Inclusão de iframes. - Redirecionar para links externos ao sistema.

Muito resumidamente, é possível observar como é que um sistema pode ser derrobado através destetipo de ataques, e por consequência fazer com que o utilizador caia inocentemente numa armadilha.

Page 4: Análise de vulnerabilidades ao sistema Wareztuga

Em seguida é apresentada uma string de dados de modo a comprovar uma das falhas de segurança do sistema.

movies.php?p=1&btn=moviesfeatured="></a><img src="">

O trecho de código anterior permite a injeção de código relativo a uma imagem na páginamovies.php. É possivel verificar em seguida o resultado.

Através desta vulnerabilidade é possível elaborar pequenos trechos de código, por forma a enganarum utilizador, por exemplo, formúlarios falsos de login, links para download de malware alojadosexternamente ao sistema entre outras variantes.

A execução externa de páginas é também uma realidade. Foram mencionados neste artigo o uso deformulários de login, porém o uso de iframes é ideal para esses atos. A seguinte imagem comprovao uso de iframes para importação de código externo ao sistema.

Page 5: Análise de vulnerabilidades ao sistema Wareztuga

Um procedimento muito usado através desta vulnerabilidade é a hiperligação. Por norma, umindivíduo mal intencionado, tenta sempre que o utilizador descarregue da página uma aplicação(malware). Uma das medidas adotadas é o uso de hiperligações externas ao sistema.

De tal forma, um utilizador ao clicar na imagem apresentada é redirecionado para uma páginadestino (vulneravel.php). Assim que esta página seja acedida no browser da vítima (utilizador), odownload automático para o computador é iniciado, e provávelmente enviará o utilizador para apágina inicial do sistema. Este é um dos métodos mais perigoso, visto que é possível tomar posse econtrolar o computador da vítima por meio de trojans ou ser informado das suas ações através despywares. Segue abaixo um exemplo de uma string maliciosa por forma a manipular as ações doutilizador.

series.php?p=1&mediaType=series&order=views"></a><a href=http://google.pt><img src=""</a>

Perante isto, cabe ao programador ser cuidadoso aquando da implementação de qualquer sistema,visto estas serem uma das vulnerabilidades mais comuns em sistemas web-based. Lembrar que,todo o input de dados externo (oriundo do utilizador) deve ser sempre verificado de modo a evitar ofurto de dados pessoais. Na maior parte, este tipo de vulnerabilidades passa ao lado de qualquerprojetista de sistemas, parecendo uma vulnerabilidade inofensiva, por vezes existem mesmo a faltade verificação por puro esquecimento. Como foi possível comprovar, é extremamente fácil a injeçãode código malicioso e as consequências estão à vista.

Page 6: Análise de vulnerabilidades ao sistema Wareztuga

2. Ficheiro newfunctions.js

Este é o ficheiro mais crítico do sistema, como chamado na gíria "uma mina de ouro". Nele épossível encontrar todos os requests ao sistema, e de igual forma, o sistema responde ao pedido. Aeste tipo de funções chamamos "funções oráculo". Estas têm como principal caraterística informare responder sobre as funcionalidades do sistema, para o qual não existe permissão.

Um aspeto curioso no sistema, é que, é foi possível executar e efetuar uma análise semautenticação prévia, o que não deixa de ser preocupante, visto que, como observado acima, épossível através de phishing induzir em erro os utilizadores. (Ver um artigo relacionado no blog:http://infptavares.blogspot.pt/2013/12/analise-de-phishing-paypal.html )

Continuando, este ficheiro contém informação de quais as páginas que o sistema chama aquandoum request. Por exemplo, como foi visto na página inicial, existe um feed e a possibilidade depesquisar por um determinado filme. Aquando da pesquisa, o sistema chama a função:moviesGenres deste ficheiro. Esta função retorna os dados em forma de listagem, numa outrapágina externa ao sistema, consequentemente esta página é incluída na página inicial. Observando aseguinte função:

.

O resultado apresentado nesta página através do link apresentado acima é o seguinte.

Page 7: Análise de vulnerabilidades ao sistema Wareztuga

Toda a informação relativa à pesquisa é listada, posteriormente quando a página for incluída napágina principal é formatada via CSS (Cascading Style Sheets).

-Listagem dos últimos comentários no sistema

A primeira função oráculo do sistema em análise é a updateComments. Através desta função épossível visualizar todos os comentários às diferentes séries efetuados pelos utilizadores. Destamaneira, é possível obter total controlo de quais os filmes que determinado utilizador visualiza ecomenta.

Como é possivel observar, esta função foi comentada, mas deixada no ficheiro. Olhando para alinha "url" é possível a injeção de código e obter a informação relativa ao comentário dosutilizadores. O pior, é não existir a necessidade de autenticação prévia no sistema. Segue umaimagem que apresenta o relativo feed de comentários.

Page 8: Análise de vulnerabilidades ao sistema Wareztuga

Uma simples solução para precaução seria a implementação de verificação de sessão ativa. Este éum dos grandes problemas dos requests via Javascript, como mostra a seguinte instrução.

updateComments.ajax.php?mediaType=series&mode=1&lcID=1

-Verificar dados de autenticação

Uma das funções mais graves e que expõem a segurança do sistema é a função oráculo apresentadaem seguida.

/login.ajax.php?username=teste&pasword=123

A função apresentada tem um retorno esperado de quatro diferentes valores inteiros.- 0: Para redirecionamento.- 1: Utilizador não existente na base de dados.- 2: A password para o seguinte utilizador está incorrecta.- 3: Indefinido..

Para o exemplo acima, foi verificado que o retorno foi como o apresentad em seguida.

Neste caso, a password para o seguinte utilizador está errada. Esta é uma falha gravissíma dosistema, pois é possível tirar o máximo proveito dela. A possível criação de um bot com o intuito deenviar vários requests ao servidor através de um dicionário de palavras é uma solução mais quenatural para derrobar a password de qualquer utilizador. Este tipo de vulnerabilidades é bastantecomum e é um indicio para o furto de contas de utilizadores, e também subverter os privilégios dosistema. Por norma, nos sistemas web-based os back-offices sofrem imenso com este tipo de ataquesdicionário (/admin/login.php).

Page 9: Análise de vulnerabilidades ao sistema Wareztuga

-Registo de conta

Uma outra função problemática é a validateRegister(). Esta função está atualmente desativada, maspermite o registo de um novo utilizador na base de dados. A composição do link é o seguinte:register.ajax.php?username=""&email=""&password=""&rePassword=""

No entando, os administradores do sitema por sua vez, já desativaram esta função. Comocuriosidade seu retorno é bastante esclarecedor e encantador. Em seguida é possível observá-lo.

É possivel através do link registar utilizadores, apesar do sistema ter essa opção de registobloqueada para a comunidade.Neste ficheiro existem mais umas quantas funções, mas contudo são operações que apenas outilizador com sessão iniciada poderá consumar. Não são vistas com tanto risco como asmencionadas anteriormente no artigo.

Page 10: Análise de vulnerabilidades ao sistema Wareztuga

Visualização de Filmes

Como sabido, este sistema permite a visualização dos filmes e séries na sua própria página. Namaioria das vezes, existem queixas dos utilizadores, derivado a interrupções no vídeo. Quandotentam reverter o problema e revê-lo novamente, têm de esperar até que o loading chegue ao sitioonde tinha interrompido.Uma das soluções que o utilizador pode adotar é o download direto do vídeo e da legenda. Emseguida é apresentada uma imagem representativa da página de visualizalção de um filme nosistema.

Para proceder a esta operação, apenas é necessário abrir a página relativa às informações do filme.Como é perceptivel, o sistema disponibiliza três servidores de download. Independentemente daescolha, a seguinte janela aparecerá no brownser.

Page 11: Análise de vulnerabilidades ao sistema Wareztuga

Para prosseguir com o download do filme e da respectiva legenda apenas será necessário cumprir dois passos básicos:

Copiar o link de download do URL do browser (http://www.putlocker.com/file/**) e prosseguircom o respectivo download.

No caso da legenda, existe a necessidade de copiar o argumento associado ao elemento m= do URL,neste caso , The_Warriors. Consequentemente, concatená-lo com "SD.str" para que seja possívelobter um nome semelhante a <The_WarriorsSD.str>. Por fim, basta aceder ao seguinte link:subs/The_WarriorsSD.srt

Finalmente, é possível visualizar o filme num vulgar software para o devido efeito, como porexemplo o BSPlayer. Permanece apenas a necessidade de arrastar o ficheiro (em download) dofilme e a legenda para cima do reprodutor para que a reprodução inicie.

Relativamente ao artigo, estes foram os tópicos de análise. Esta última parte serviu sobretudo paraauxiliar o utilizador comum aquando a visualização de filmes.

A respeito do conteúdo do artigo, como mencionado, o wareztuga não contém qualquer informaçãode contacto vísivel no sistema. Derivado à analise do sistema, foi-nos possível enviar um e-mail deforma a notificar os administradores do sistema sobre a publicação deste artigo no presente blog.

É necessário deixar claro que, o presente artigo visa esclarecer e expor as falhas de segurança dosistema e não incentivar à prática de maus hábitos.

Boa Continuação!