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“. ODVWA é 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:
- SQL injection
- XSS (Cross Site Scripting)
- LFI (Local File Inclusion)
- RFI (Remote File Inclusion)
- Execução de comandos
- Upload de scripts
- Brute force em página de login
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!”.
Preparando o ambiente: Apache, PHP e MySQL
Antes de instalar o DVWA você deve ter um ambiente LAMP funcional. Nos próximos parágrafos, vou te mostrar como.
Apache
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
PHP
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.
MySQL
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.
Download e instalaçã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.
Conclusão
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!
Fonte:PedroPereira