O documento discute as principais ameaças à segurança da informação como injeções e cross-site scripting (XSS). Ele fornece exemplos de códigos vulneráveis e explorações, além de recomendações para prevenção como validação de entrada e saída. O documento também descreve o que são ambientes controlados como wargames e como eles podem ser usados para treinamento e pesquisa em segurança da informação.
7. • Injeções OWASP Top 10 2010 - A1 OWASP Top 10 2007 - A2 • Cross Site Scripting (XSS) OWASP Top 10 2010 - A2 OWASP Top 10 2007 - A1 Principais Ameaças
8. • Dados não esperados • Strings interpretadas como comandos • SQL, Shell, LDAP, etc... • SQL é o caso mais comum Injeções Principais Ameaças
9. SELECT id FROM usuarios WHERE nome = '$nome' AND senha = '$senha' ; <form method="post" action="http://SITE/login.php"> <input name="nome" type="text" id="nome"> <input name="senha" type="password" id="senha"> </form> Client-Side: Server-Side: Principais Ameaças Injeções - Exemplos
10. ' OR 'a'='a SELECT id FROM usuarios WHERE nome = '$nome' AND senha = ' ' OR 'a'='a ' ; Client-Side: O Exploit! Server-Side: Principais Ameaças Injeções - Exemplos
11. Principais Ameaças Injeções - Exemplos Código PHP: $query = "SELECT * FROM usuarios WHERE username = '" . $_REQUEST[‘usr'] . “’ AND passwd=‘“ . $_REQUEST[‘pwd’] . “’”; Exploração: login.php?usr=’+OR+‘1’=‘1’--&pwd=a query <- SELECT * FROM usuarios WHERE username = ‘’ +OR+‘1’=‘1’--’ AND passwd=‘a’
12. Principais Ameaças Injeções - Exemplos Código Java: String query = "SELECT * FROM usuarios WHERE username = '" + req.getParameter("usr") + "' and passwd = '" + req.getParameter("pwd") +"'"; Exploração: login.jsp?usr=admin’--&pwd=a query <- SELECT * FROM usuarios WHERE username = ‘ admin’--’ AND passwd=‘a’
16. Resultado: /usr/bin/nslookup clavis.com.br ; /bin/ls -l Além do resultado do nslookup, o atacante receberá a lista dos arquivos que estão no diretório da aplicação Principais Ameaças Injeções - Exemplos
17.
18. • Enviados ao browser do usuário • Posts, URLs, javascript, etc... • Todo Browser é “vulnerável”: javascript:alert(document.cookie) • Redirecionamento e/ou roubo de dados Cross-Site Scripting (XSS) Principais Ameaças