Google Hacking e SQL Injection:
Tudo junto e misturado!
Alcyon Junior, evangelizador do software livre, é
Consultor de Segurança Cibernética das Nações
Unidas, Professor na Universidade Católica de
B r a s í l i a e m a n t e n e d o r d o P o r t a l T I C
http://portaltic.com.
●
Três graduações em Tecnologia de Informação, com
ênfase em redes de computador.
●
Certificado em :
– ISFS ISO/IEC 27002
– CNAP
– LPIC-1
– Macfee Vulnerability Manager
●
Pós-graduado em Redes de Computador pela CISCO
●
MBA em Governança de TI.
●
Mestre em Gestão do Conhecimento e da Tecnologia
da Informação com ênfase em Segurança Cibernética
pela Universidade Católica de Brasília.
WHOAMI
14/09/14 Alcyon Junior - alcyon@portaltic.com 3
●
Email - alcyon@portaltic.com
●
PortalTIC – http://portaltic.com
●
Facebook – Alcyon Junior
●
Twitter e Identi.ca - @alcyjones
●
LinkedIN - http://br.linkedin.com/in/alcyon
●
Google Plus - http://gplus.to/alcyjones
●
Me Adiciona - http://meadiciona.com/alcyon
●
AboutMe – http://about.me/alcyon.junior
CONTATOS
14/09/14 Alcyon Junior - alcyon@portaltic.com 4
PortalTIC e o Virtual Learning Center
http://portaltic.com/
http://portaltic.com/vlc
14/09/14 Alcyon Junior - alcyon@portaltic.com 5

Introdução

O que é Google Hacking?

O que é SQL Injection?

Como?

Porque?

Conclusão?
AGENDA
14/09/14 Prof. Alcyon Junior 6
Segurança é um estado.
Em um momento você pode
parecer seguro, em outro não.
O QUE É SEGURANÇA?
14/09/14 Alcyon Junior - alcyon@portaltic.com 7
Se você acredita que a
tecnologia pode resolver seus
problemas de segurança,
então você ….
VAMOS PENSAR UM POUCO?
14/09/14 Alcyon Junior - alcyon@portaltic.com 8
14/09/14 Alcyon Junior - alcyon@portaltic.com 9
“Se você acredita que a tecnologia pode
resolver seus problemas de segurança, então
você não conhece os problemas e nem a
tecnologia.”
Bruce Schneier
VAMOS PENSAR UM POUCO?
14/09/14 Alcyon Junior - alcyon@portaltic.com 10
Você sabe o que é SQL
Injection?
Teste de Invasão
14/09/14 Alcyon Junior - alcyon@portaltic.com 11
Falaremos sobre um assunto muito importante, que envolve a
segurança dos nossos projetos em PHP e MySQL, o temido
SQL Injection. Se você é programador com certeza já ouviu à
respeito, mas se nunca entendeu ao certo vou explicar do que
se trata.
O SQL Injection é um ataque que visa enviar comandos
nocivos à base de dados através de campos de formulários ou
através de URLs. Um ataque bem-sucedido pode, por exemplo,
apagar uma tabela do banco, deletar todos os dados da tabela
ou até adquirir senhas que estejam cadastradas.
SQL Injection
14/09/14 Alcyon Junior - alcyon@portaltic.com 12
SQL Injection pode ser dividido em 3 classes
Inband - dados são extraídos usando o mesmo canal que é usada para
injectar o código SQL. Este é o tipo mais simples de ataque, em que os
dados recuperados são apresentados diretamente na página web aplicação
Out-of-Band - os dados são recuperados usando um canal diferente (por
exemplo: um e-mail com os resultados da consulta é gerado e enviado para
o testador)
Inferencial - não há transferência real de dados, mas o testador é capaz de
reconstruir a informação através do envio de solicitações específicas e
observando o comportamento resultante do website / DB Server.
SQL Injection
14/09/14 Alcyon Junior - alcyon@portaltic.com 13
Vamos imaginar um problema:
Temos uma aplicação com um formulário que
recebe um nome de usuário, e depois faz uma
consulta ao banco de dados:
SQL Injection
14/09/14 Alcyon Junior - alcyon@portaltic.com 14
SQL Injection
14/09/14 Alcyon Junior - alcyon@portaltic.com 15
Neste caso o atacante pode enviar o caractere
(aspas simples) dentro do texto, como se ele
fizesse parte do mesmo; mas na verdade ele
acabou sendo interpretado pelo banco de dados
como sendo o fechamento da string SQL.
SQL Injection
14/09/14 Alcyon Junior - alcyon@portaltic.com 16
Solução
Os valores a serem inseridos no banco podem conter caracteres especiais, como aspas e
aspas simples. Eles devem ser previamente preparados para depois fazerem parte da string
SQL.
O PHP fornece uma série de funções para este tratamento, são as funções de escape de
caracteres. A maioria dos bancos suportados pelo PHP tem esta função.
MySQLi - mysqli::real_escape_string
MySQL - mysql_escape_string
Postgre - pg_escape_string
SQLite - sqlite_escape_string
O código corrigido fica assim. Repare que agora as aspas são "escapadas" e não são mais
interpretadas pelo banco de maneira indevida.
SQL Injection
14/09/14 Alcyon Junior - alcyon@portaltic.com 17
SQL Injection
14/09/14 Alcyon Junior - alcyon@portaltic.com 18
Você sabe o que é Google
Hacking?
Google Hacking
14/09/14 Alcyon Junior - alcyon@portaltic.com 19
A técnica de google hacking foi introduzida pela primeira
vez por Johnny Long, na Defcon 13, inclusive ele já
publicou um livro sobre o assunto chamado "Google
Hacking for Penetration Testers" - uma obrigação para
qualquer Googlenaut.
A ideia geral por trás do "Google Hacking" é a utilização de
operadores de pesquisa especiais do Google para melhorar
os nossos resultados e assim localizar arquivos muito
específicos, geralmente com um formato conhecido ou que
nos tragam algum dado relevante.
Google Hacking
14/09/14 Alcyon Junior - alcyon@portaltic.com 20
Google oferece operadores avançados que nos ajudam a
melhorar nossas consultas. Esses operadores, usados
corretamente,podem ajudá-lo a obter exatamente a informação
que você está procurando, sem gastar muito tempo debruçado
sobre páginas após páginas de resultados de pesquisa.
• Intitle, allintitle, info, bphonebook
• Inurl, allinurl, related, phonebook,rphonebook
• Filetype, site, link, cache, author, group, msgid
• Allintext, inanchor, daterange, insubject, stocks e define
Google Hacking
14/09/14 Alcyon Junior - alcyon@portaltic.com 21
Alguns testes:
●
site:aeoi.org.ir
●
site:aeoir.org.ir filetype:pdf
●
email password site:aeoi.org.ir
●
mysql dump filetype:sql
●
"Powered by phpBB" inurl:"index.php?s" OR
inurl:"index.php?style"
Google Hacking
14/09/14 Alcyon Junior - alcyon@portaltic.com 22
Encontrando servidores vulneraveis
Todos os dias, novas vulnerabilidades em aplicações web são
encontradas e publicadas nos sites de segurança
(securityfocus.com). O Google pode muitas vezes ser utilizado
para identificar os servidores que contenham essas
vulnerabilidades.
Por exemplo, em fevereiro de 2006, uma vulnerabilidade phpBB
(portal de fórum em php) foi divulgada. Hackers usaram o Google
para identificar rapidamente todos os sites que executavam o
phpBB, e esses sites foram alvo de ataques. Leia mais sobre a
vulnerabilidade e seu exploit aqui:
http://www.exploit-db.com/exploits/1469
Google Hacking
14/09/14 Alcyon Junior - alcyon@portaltic.com 23
Google Hacking + SQL Injection = InURLBR
InURLBR
14/09/14 Alcyon Junior - alcyon@portaltic.com 24
Falando um pouco da tool, busca avançada em
motores de busca, possibilita desde analise com
exploit GET/POST a captura de emails &
validação personalizada interna para cada
alvo/url encontrada.
InURLBR
14/09/14 Alcyon Junior - alcyon@portaltic.com 25
DEMONSTRAÇÃO
InURLBR
14/09/14 Alcyon Junior - alcyon@portaltic.com 26/
14/09/14 Alcyon Junior - alcyon@portaltic.com 27
●
Email - alcyon@portaltic.com
●
PortalTIC – http://portaltic.com
●
Facebook – Alcyon Junior
●
Twitter e Identi.ca - @alcyjones
●
LinkedIN - http://br.linkedin.com/in/alcyon
●
Google Plus - http://gplus.to/alcyjones
●
Me Adiciona - http://meadiciona.com/alcyon
●
AboutMe – http://about.me/alcyon.junior
CONTATOS
14/09/14 Alcyon Junior - alcyon@portaltic.com 28/

Google hacking e SQL Injection: Tudo junto e misturado!

  • 1.
    Google Hacking eSQL Injection: Tudo junto e misturado!
  • 2.
    Alcyon Junior, evangelizadordo software livre, é Consultor de Segurança Cibernética das Nações Unidas, Professor na Universidade Católica de B r a s í l i a e m a n t e n e d o r d o P o r t a l T I C http://portaltic.com. ● Três graduações em Tecnologia de Informação, com ênfase em redes de computador. ● Certificado em : – ISFS ISO/IEC 27002 – CNAP – LPIC-1 – Macfee Vulnerability Manager ● Pós-graduado em Redes de Computador pela CISCO ● MBA em Governança de TI. ● Mestre em Gestão do Conhecimento e da Tecnologia da Informação com ênfase em Segurança Cibernética pela Universidade Católica de Brasília. WHOAMI
  • 3.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 3 ● Email - alcyon@portaltic.com ● PortalTIC – http://portaltic.com ● Facebook – Alcyon Junior ● Twitter e Identi.ca - @alcyjones ● LinkedIN - http://br.linkedin.com/in/alcyon ● Google Plus - http://gplus.to/alcyjones ● Me Adiciona - http://meadiciona.com/alcyon ● AboutMe – http://about.me/alcyon.junior CONTATOS
  • 4.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 4 PortalTIC e o Virtual Learning Center http://portaltic.com/ http://portaltic.com/vlc
  • 5.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 5  Introdução  O que é Google Hacking?  O que é SQL Injection?  Como?  Porque?  Conclusão? AGENDA
  • 6.
    14/09/14 Prof. AlcyonJunior 6 Segurança é um estado. Em um momento você pode parecer seguro, em outro não. O QUE É SEGURANÇA?
  • 7.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 7 Se você acredita que a tecnologia pode resolver seus problemas de segurança, então você …. VAMOS PENSAR UM POUCO?
  • 8.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 8
  • 9.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 9 “Se você acredita que a tecnologia pode resolver seus problemas de segurança, então você não conhece os problemas e nem a tecnologia.” Bruce Schneier VAMOS PENSAR UM POUCO?
  • 10.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 10 Você sabe o que é SQL Injection? Teste de Invasão
  • 11.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 11 Falaremos sobre um assunto muito importante, que envolve a segurança dos nossos projetos em PHP e MySQL, o temido SQL Injection. Se você é programador com certeza já ouviu à respeito, mas se nunca entendeu ao certo vou explicar do que se trata. O SQL Injection é um ataque que visa enviar comandos nocivos à base de dados através de campos de formulários ou através de URLs. Um ataque bem-sucedido pode, por exemplo, apagar uma tabela do banco, deletar todos os dados da tabela ou até adquirir senhas que estejam cadastradas. SQL Injection
  • 12.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 12 SQL Injection pode ser dividido em 3 classes Inband - dados são extraídos usando o mesmo canal que é usada para injectar o código SQL. Este é o tipo mais simples de ataque, em que os dados recuperados são apresentados diretamente na página web aplicação Out-of-Band - os dados são recuperados usando um canal diferente (por exemplo: um e-mail com os resultados da consulta é gerado e enviado para o testador) Inferencial - não há transferência real de dados, mas o testador é capaz de reconstruir a informação através do envio de solicitações específicas e observando o comportamento resultante do website / DB Server. SQL Injection
  • 13.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 13 Vamos imaginar um problema: Temos uma aplicação com um formulário que recebe um nome de usuário, e depois faz uma consulta ao banco de dados: SQL Injection
  • 14.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 14 SQL Injection
  • 15.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 15 Neste caso o atacante pode enviar o caractere (aspas simples) dentro do texto, como se ele fizesse parte do mesmo; mas na verdade ele acabou sendo interpretado pelo banco de dados como sendo o fechamento da string SQL. SQL Injection
  • 16.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 16 Solução Os valores a serem inseridos no banco podem conter caracteres especiais, como aspas e aspas simples. Eles devem ser previamente preparados para depois fazerem parte da string SQL. O PHP fornece uma série de funções para este tratamento, são as funções de escape de caracteres. A maioria dos bancos suportados pelo PHP tem esta função. MySQLi - mysqli::real_escape_string MySQL - mysql_escape_string Postgre - pg_escape_string SQLite - sqlite_escape_string O código corrigido fica assim. Repare que agora as aspas são "escapadas" e não são mais interpretadas pelo banco de maneira indevida. SQL Injection
  • 17.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 17 SQL Injection
  • 18.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 18 Você sabe o que é Google Hacking? Google Hacking
  • 19.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 19 A técnica de google hacking foi introduzida pela primeira vez por Johnny Long, na Defcon 13, inclusive ele já publicou um livro sobre o assunto chamado "Google Hacking for Penetration Testers" - uma obrigação para qualquer Googlenaut. A ideia geral por trás do "Google Hacking" é a utilização de operadores de pesquisa especiais do Google para melhorar os nossos resultados e assim localizar arquivos muito específicos, geralmente com um formato conhecido ou que nos tragam algum dado relevante. Google Hacking
  • 20.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 20 Google oferece operadores avançados que nos ajudam a melhorar nossas consultas. Esses operadores, usados corretamente,podem ajudá-lo a obter exatamente a informação que você está procurando, sem gastar muito tempo debruçado sobre páginas após páginas de resultados de pesquisa. • Intitle, allintitle, info, bphonebook • Inurl, allinurl, related, phonebook,rphonebook • Filetype, site, link, cache, author, group, msgid • Allintext, inanchor, daterange, insubject, stocks e define Google Hacking
  • 21.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 21 Alguns testes: ● site:aeoi.org.ir ● site:aeoir.org.ir filetype:pdf ● email password site:aeoi.org.ir ● mysql dump filetype:sql ● "Powered by phpBB" inurl:"index.php?s" OR inurl:"index.php?style" Google Hacking
  • 22.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 22 Encontrando servidores vulneraveis Todos os dias, novas vulnerabilidades em aplicações web são encontradas e publicadas nos sites de segurança (securityfocus.com). O Google pode muitas vezes ser utilizado para identificar os servidores que contenham essas vulnerabilidades. Por exemplo, em fevereiro de 2006, uma vulnerabilidade phpBB (portal de fórum em php) foi divulgada. Hackers usaram o Google para identificar rapidamente todos os sites que executavam o phpBB, e esses sites foram alvo de ataques. Leia mais sobre a vulnerabilidade e seu exploit aqui: http://www.exploit-db.com/exploits/1469 Google Hacking
  • 23.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 23 Google Hacking + SQL Injection = InURLBR InURLBR
  • 24.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 24 Falando um pouco da tool, busca avançada em motores de busca, possibilita desde analise com exploit GET/POST a captura de emails & validação personalizada interna para cada alvo/url encontrada. InURLBR
  • 25.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 25 DEMONSTRAÇÃO InURLBR
  • 26.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 26/
  • 27.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 27 ● Email - alcyon@portaltic.com ● PortalTIC – http://portaltic.com ● Facebook – Alcyon Junior ● Twitter e Identi.ca - @alcyjones ● LinkedIN - http://br.linkedin.com/in/alcyon ● Google Plus - http://gplus.to/alcyjones ● Me Adiciona - http://meadiciona.com/alcyon ● AboutMe – http://about.me/alcyon.junior CONTATOS
  • 28.
    14/09/14 Alcyon Junior- alcyon@portaltic.com 28/