15 Aug
Postado por: Pedro Pereira em: Segurança
![]()
Aplicações web são, hoje em dia, os alvos mais visados por hackers. Geralmente, este tipo de aplicação possui muitas falhas de segurança simples de se explorar e permitem que um spammer, por exemplo, utilize seu site para disseminar malware, spyware, phishing, etc. Por isso é muito importante que você desenvolva aplicações web seguras.
Mas, como entender estas falhas de maneira fácil? Utilizando aplicações como o “Damn Vulnerable Web App“. O DVWA é uma aplicação web que possui várias falhas de segurança para você poder explorar e entender como elas funcionam. Utilizando esta aplicação você pode atacar o servidor tranquilamente, sem medo de estar fazendo algo errado e ainda aprender a defender o seu servidor de produção.
Na versão 1.0.4 (a mais atual enquanto escrevo este texto), algumas das falhas que podem ser estudadas são:
Uma das características mais legais desse software, na minha opinião, é a possibilidade de selecionar níveis de dificuldade. Assim, você pode fazer com que o processo de explorar as falhas do software seja mais simples ou mais complexo, de acordo com o seu conhecimento. Além disso, a aplicação é toda OpenSource: você pode analisar todo o código e verificar como os erros foram introduzidos pelo programador.
Neste artigo vou te ensinar a instalar o DVWA em uma máquina virtual CentOS Linux (mas não será nada complicado adaptar o tutorial à outras distribuições, a instalação deste software é realmente simples). Se você gosta de Windows, pode instalar a aplicação utilizando o XAMPP (esta configuração não será abordada neste artigo): http://www.apachefriends.org/pt_br/xampp-windows.html.
Obviamente, esta aplicação é cheia de falhas de segurança e não deve, em hipótese alguma, ser instalada em um servidor que permita que ela seja acessada através da Internet. Nunca se esqueça disso! Como dizem os desenvolvedores: “Damn Vulnerable Web App is damn vulnerable!”.
Antes de instalar o DVWA você deve ter um ambiente LAMP funcional. Nos próximos parágrafos, vou te mostrar como.
A instalação do Apache é bem simples, basta:
# yum install httpd httpd-manual
Para instalar o servidor HTTPd e a documentação. Por padrão, o diretório onde você deve adicionar os arquivos do DVWA é o /var/www/html/algum-diretorio. O último diretório (algum-diretorio) deve ser criado por você e é opcional: serve apenas para deixar seu servidor um pouco mais organizado.
Inicialize o serviço httpd:
# service httpd start
Você pode fazer a instalação do PHP da seguinte maneira:
# yum install php php-common php-devel php-gd php-mysql
No PHP, não há configurações a serem feitas.
A instalação do MySQL requer alguns passos adicionais, mas também é bem simples:
# yum install mysql mysql-devel mysql-server
O pacote mysql-devel na verdade não é necessário, mas eu gosto de ter todos os arquivos de desenvolvimento junto com o pacote. Mania :)
Se o serviço mysqld não estiver startado, faça o seguinte:
# service mysqld start
Logo após, defina uma senha de root utilizando o seguinte comando:
# /usr/bin/mysqladmin -u root password ‘senha’
Não se esqueça de colocar uma senha forte para o root. Pronto, MySQL também já está instalado e configurado. Lembre-se dessa senha, mais tarde ela será necessária durante o processo de configuração do DVWA.
Com um ambiente LAMP operacional, podemos começar a instalação do DVWA sem dores de cabeça :)
O download do DVWA pode ser feito em http://sourceforge.net/projects/dvwa/. É um download rápido, o arquivo tem apenas 1.4MB. Quando o download estiver finalizado, envie o arquivo para o diretório /var/www/html da máquina onde você irá instalar o aplicativo e faça o seguinte:
# cd /var/www/html
# unzip dvwa_v1.0.4.zip
Será criado um diretório chamado dvwa. Devemos entrar nele e editar o arquivo includes/config.php. Neste arquivo vamos colocar o usuário e a senha do MySQL para que seja possível criar o banco de dados para explorarmos as falhas de SQL Injection. O arquivo é bem simples, em “$user” coloque o usuário que você utiliza para acessar o BD (eu utilizei o root mesmo) e em “$password” você deve colocar a senha que configurou no item anterior.
# cd dvwa/includes
# vim config.php
Todo o resto da configuração será feito através do seu navegador. Acesse a máquina onde você instalou o DVWA através do endereço http://localhost/dvwa. Lembre-se de substituir “localhost” pelo IP da máquina onde você instalou o software. A primeira tela que você vai ver é a seguinte:

Para configurar o MySQL para que você possa executar ataques de SQL Injection, clique no link “SQL Injection” à esquerda e clique em “Click here…” para executar a configuração clique em “Create database” e pronto! O instalador irá fazer todo o resto automaticamente, considerando que o nome de usuário e a senha estejam corretos no arquivo /var/www/html/dvwa/includes/config.php.

Por padrão, o nível de segurança do DVWA está configurado para “low” (baixo). Se você quiser alterar, basta clicar em “Security Level” no menu à esquerda e selecionar o nível desejado da caixinha de seleção à direita.
Se você conseguiu chegar até aqui, você já terá um ambiente DVWA pronto para ser estudado. No menu à esquerda você pode selecionar qual ataque quer executar clicando em algum dos links (“Brute force”, “File inclusion”, etc). Em cada um desses links, no rodapé você encontra referências a textos explicando o que são e como explorar tais falhas (a maioria também ensina a corrigir os problemas). O único porém é que estes links são todos em inglês. Mas em português você também consegue encontrar muito material de alta qualidade, basta procurar no Google.
Espero que com isso você aprenda a desenvolver aplicações web mais seguras ou, se não é desenvolvedor, que consiga testar e ensinar ao desenvolvedor do site da sua empresa (ou algum desenvolvedor amigo seu) a codificar de forma mais segura, contribuindo assim com uma web segura e com menos perigos para todos os usuários!
Se você tem alguma dúvida ou sugestão, deixe um comentário!
Não há posts relacionados a este!

Esta obra escrita por Pedro Augusto de Oliveira Pereira está licensiada sob a Creative Commons Atribuição-Uso Não-Comercial-Vedada a Criação de Obras Derivadas 3.0 Brasil License.

Publicando meu perfil no LinkedIn aqui no blog, tenho como objetivo expandir minha rede de contatos profissionais. Me adicione no LinkedIn!

1 comentário
itiel
07|Nov|2009 1oi gostei do texto quero mew aprofundar no assunto mais sou iniciante vc pode me ajudar praticamente naum sei de nada air se poder visite meu email de msn ok abraço itiel_faustiny@hotmail.com quero aprender como manipular falhas ok att
Deixe seu comentário!