Aprenda a explorar falhas de segurança de aplicações web

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:

home
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.

conf-sql

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

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s