Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL): Nos últimos anos uma das vulnerabilidades mais exploradas por usuários mal-intencionados é a injeção de SQL, onde o atacante realiza uma inserção de código SQL em campos desprotegidos e obtém acesso a áreas não autorizadas, dados sigilosos e diversos outras funções. Neste desafio seu objetivo será acessar a área administrativa do sistema desenvolvido através da injeção de código SQL, como dica para a resolução deste desafio pense em um código SQL e como burlar seu resultado. Caso obtenha sucesso no acesso à área administrativa, tente utilizar alguma ferramenta de SQL Injection, como por exemplo o SQL Map e realize um select em alguma tabela do banco de dados.
Questão 2 Vulnerabilidade: OS Command Injection (Injeção de comandos do sistema operacional): Esta vulnerabilidade quando não tratada corretamente expõe o sistema a um grave risco, na qual algum atacante pode realizar a injeção de comando diretamente no host. Geralmente a criação de diretórios em sistemas web é realizada através de comandos do sistema operacional como exec, system, etc., tente realizar a execução de algum comando do sistema operacional através da aplicação Web em PHP, como exemplo o ipconfig ou dir.
Questão 3 Vulnerabilidade: Cross-site Scripting (XSS) O XSS é uma vulnerabilidade que tem sido muito explorada nos últimos anos, seu principal problema é a execução de código no browser do usuário sem a intervenção do mesmo. Com base nesta afirmação verifique em qual parte do sistema é possível explorar essa vulnerabilidade e tente realizar um javascript, por exemplo, no sistema web.
Questão 4 Vulnerabilidade: Missing Authentication for Critical Function (Falta de autenticação para funções críticas) Algumas funções em sistemas WEB são críticas por diversas razões, geralmente em sistema que realizam cadastro de clientes, os dados armazenados como CPF, endereço, telefone, etc., necessitam de um cuidado especial, pois se algum usuário mal intencionado obter acesso pode realizar diversos crimes e prejudicar a empresa que teve o sistema explorado. Devido a essa razão verifique o acesso a alguma função crítica que tem fundamental importância no sistema e que necessitaria de um cuidado especial na autenticação, outro ponto interessante a ressaltar é que em alguns sistemas programadores descuidados deixam links para páginas muito importantes e que não estão protegidas no código HTML. Tente descobrir qual seria a(s) função (ões) crítica(s) desprotegida(s) e o link para esta função.
Questão 5 Vulnerabilidade: Missing Authorization (Falta de autenticação) Um grave problema encontrado em muitos sistemas Web atualmente é a falta de autenticação para páginas ou funções restritas, o que acaba expondo em muitos casos dados sigilosos, informações ou funções que podem permitir a atacantes realizar acessos ou ações não autorizadas no sistema. Tente realizar o acesso a alguma função da área administrativa sem realizar o login no sistema.
Questão 6 Vulnerabilidade: Use of Hard-coded Credentials (Uso de credencias no código) Em diversos sistemas é possível localizar credencias de acesso salvas na codificação das páginas o que permite para algum atacante analisar o código fonte do site e realizar acessos não autorizados facilmente. Nesta vulnerabilidade descubra qual usuário e senha estão embutidos no código fonte do sistema e avalie sua utilização.
Questão 7 Vulnerabilidade: Missing Encryption of Sensitive Data (Falta de encriptação de dados sensíveis) Atualmente é possível verificar que diversas aplicações não realizam a encriptação de informações sensíveis e que caso sejam divulgadas podem prejudicar a imagem de empresas ou causar transtornos aos donos das informações. Com base nesta informação verifique se as informações sigilosas neste sistema são armazenadas no banco de dados criptografadas.
Questão 8 Vulnerabilidade: Unrestricted Upload of File with Dangerous Type (Upload irrestrito de arquivos de tipos perigosos) Em diversos sistemas Web é possível encontrar upload de arquivos como fotos, músicas, filmes, etc., em algumas aplicações não é realizado checagem na extensão o que acaba permitindo muitas vezes a usuários mal-intencionados disponibilizar arquivos perigosos nos sites e enviar o link para diversos usuários que podem, sem o devido conhecimento, instalar backdoors ou outras ameaças. Tendo em vista a afirmação acima verifique na aplicação em qual (is) parte(s) está vulnerabilidade pode ser explorada.
Questão 9 Vulnerabilidade: Reliance on Untrusted Inputs in a Security Decision (Confiança em entradas não-confiáveis em uma decisão segura) Uma grave falha no controle de acesso em aplicações Web é a confiança em entradas de dados ou variáveis que podem ser alteradas facilmente por algum atacante. Nos sistemas desenvolvidos com áreas restritas muitas vezes as autenticações se baseiam em cookies e sessões para verificar se determinado usuário possui permissão de acesso à função ou página. Com base neste problema enfrentado em diversos sistemas verifique na aplicação qual seria à área restrita que possui uma validação da autenticação que apresenta esta falha.
Questão 10 Vulnerabilidade: Cross-Site Request Forgery (CSRF) Esta vulnerabilidade está presente atualmente em muitas aplicações disponíveis na Internet, esse problema ocorre geralmente quando usuários já autenticados em algum sistema podem executar ações automaticamente utilizando apenas a URL ou endereço da aplicação. Por exemplo, se algum usuário autenticado pode excluir ou incluir algum dado no sistema apenas utilizando uma URL é possível para algum atacante enviar a URL para vítima e esta executar alguma ação sem conhecimento. Tente executar no sistema alguma ação apenas utilizando a URL de acesso quando estiver autenticado na área administrativa.
Questão 11 Vulnerabilidade: Path Traversal (Limitação incorreta do caminho de um diretório restrito) A criação de diretórios ou arquivos é uma área muito sensível em qualquer aplicação voltada para a Web, pois se ocorrer algum descuido tanto na aplicação como na configuração do ambiente é possível criar pastas ou arquivos que podem ser utilizados como backdoors para acesso não autorizado. Teste a aplicação verificando se é possível criar algum diretório ou arquivo fora dos caminhos pré-definidos no sistema.
Questão 12 Vulnerabilidade: Use of a Broken or Risky Cryptographic Algorithm (Uso de um algoritmo criptográfico quebrado ou com riscos) Com o passar dos anos muitos algoritmos criptográficos foram sendo quebrados ou expostos através de vulnerabilidades descobertas, entre eles 3DES, DES, entre outros. Com base nesta informação verifique no sistema a utilização de um algoritmo criptográfico quebrado e realize testes de exploração dos dados criptografados.
Questão 13 Vulnerabilidade: Improper Restriction of Excessive Authentication Attempts (Restrição incorreta de excessivas tentativas de autenticação) A parte de autenticação dos sistemas atualmente é uma das áreas mais exploradas e com maior tentativa de acesso não autorizado, visto que na maior parte das aplicações permitem acesso a informações criticas ou funções primordiais nos sistemas. Tendo em vista esta vulnerabilidade realize testes no sistema para verificar se está exposto a este problema de segurança.
Questão 14 Vulnerabilidade: Open Redirect (Redirecionamento de URL para sites não confiáveis) O redirecionamento aberto (open redirect) é quando alguns sites permitem o redirecionamento para outras páginas através de variáveis recebidas de forma insegura, o que permite a usuários mal-intencionados utilizar em alguns casos sites confiáveis como forma de camuflar o acesso a urls maliciosas ou que contenham scripts prontos para corromper ou atacar o computador dos usuários que acessarem o link redirecionado. Teste o sistema para verificar se o mesmo possui está vulnerabilidade e se é possível redirecionar para algum site malicioso com parâmetros inseguros.
Questão 15 Vulnerabilidade: Use of a One-Way Hash without a Salt (Uso de Hash de mão única sem salto) A utilização de algoritmos de Hash está em crescimento nos últimos anos principalmente na parte de armazenamento de informações criticas em bancos de dados como usuários e senhas, porém ao realizar a criação do hash sem a execução de um salto extra é possível que algum usuário mal intencionado tenha maior facilidade na tentativa de descobrir a informação que foi gerada através do algoritmo. Verifique no sistema se é realizado o salto extra durante a criação do hash na área de criação dos usuários.
Após o término das questões, se possível responder o seguinte questionário para analisar o resultado do estudo: https://docs.google.com/spreadsheet/viewform?formkey=dgiwtlfhc0r0sjh0b3p4rzfytedde nc6mq