SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Fatos e mitos sobre
desenvolvimento seguro
O que a internet diz...
Quem sou...
● Desenvolvedor Web
● Pesquisador e Entusiasta da Segurança da
Informação
● Aszone
● Amazonense...
● Da terra da Mangaba…
● =)
Introdução
Quando temos dúvida, onde recorremos ?
Antes enciclopédia, hoje temos
Google/Bing/Yandex/Baidu.
Qual a principal diferença?
Agora as referências também têm equivocos e
erros.
Mitos
Mitos
"Nem tudo que reluz é ouro"
Nem todo site relevante tem verdade plena
"A pressa é inimiga da perfeição"
Rapidez pode ser o seu pior inimigo, com crt+c | crt+v
"As aparências enganam"
Teste nunca é demais, ataque seu código
Falhas
Sql Injection
É Inserção de uma série
de instruções SQL
dentro de uma consulta
(query) para retorno de
qualquer tipo de dados
que não era para ser
retornado.
Sql Injection
Resultado da pesquisa "Anti sql injection":
Sql Injection
Resultado da pesquisa "Anti sql injection":
● http://www.scriptbrasil.com.br/forum/topic/168609-funcao-anti-sql-injection/
● http://forum.imasters.com.br/topic/125349-anti-sql-injection/
● http://forum.imasters.com.br/topic/276729-seguranca-em-php/
● http://phpbrasil.com/artigo/v5Ejt4VOld2r/anti-sql-injection--solucao-global
● http://eniomarcelobuza.blogspot.com.br/2012/08/php-funcao-anti-sql-
injection.html
● http://www.vivaolinux.com.br/script/Funcao-Anti-MySQL-Injection-Proteja-sua-
aplicacao
● https://discussion.dreamhost.com/thread-134658.html
Sql Injection
Usando SqlMap
SqlMap é uma ferramenta
que automatiza o
processo de detectar e
explorar as falhas de
injeção SQL.
Sql Injection
Vamos aos testes ?
Sql Injection
Free Hand
Agora fazendo tratamento nas
querys manualmente, para dar
bypass nas soluções propostas.
Sql Injection
Segredo do Bypass:
*_replace => Age na identificação de algum item setado e
altera por outro parametro que desejar.
Exemplo:
“Select login,senha from tabela_x” => “login,senha tabela_x”
Bypass:
“Sele*ct login,senha frofromm tabela_x” =>
“Select login,senha from tabela_x”
Fatos
Fatos
Resultado:
Solução do Sql Injection:
Se for um id:
valide com is_numeric, ou is_bool se for
boleano;
Se o request for uma string:
mysql_real_escape_string();
Sql Injetcion
Resultado:
Para id:
Para string:
Fatos
● Utilização de frameworks ou cms
● Utilização de padrões de projetos ( DAO )
● Camada de proteção de erros (50*)
● Aplicação de pentest / code review
● Implementação de logs e notificações
● Filtros nas entradas e saídas de dados
● Metodologia de desenvolvimento seguro
Fim
lenonleite@gmail.com
@lenonleite
www.lenonleite.com.br
em breve:
www.aszone.com.br

Más contenido relacionado

Destacado

Destacado (14)

Criando um banco de dados MySQL
Criando um banco de dados MySQLCriando um banco de dados MySQL
Criando um banco de dados MySQL
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
PHP e MySQL para iniciantes
PHP e MySQL para iniciantesPHP e MySQL para iniciantes
PHP e MySQL para iniciantes
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
Tipos de dados em MySQL
Tipos de dados em MySQLTipos de dados em MySQL
Tipos de dados em MySQL
 
MySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de Produto
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Difference WAMP and XAMPP
Difference WAMP and XAMPPDifference WAMP and XAMPP
Difference WAMP and XAMPP
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zero
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 

Más de As Zone

Más de As Zone (7)

Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
 
Fisl 16 - WordPress vs Hacker - Descubra o que ainda é preciso saber para bl...
Fisl 16 - WordPress vs Hacker - Descubra o que ainda é preciso saber para bl...Fisl 16 - WordPress vs Hacker - Descubra o que ainda é preciso saber para bl...
Fisl 16 - WordPress vs Hacker - Descubra o que ainda é preciso saber para bl...
 
Palestra - DFJUG Java 20 anos - Web Hacking - Desenvolva na defesa, jogando n...
Palestra - DFJUG Java 20 anos - Web Hacking - Desenvolva na defesa, jogando n...Palestra - DFJUG Java 20 anos - Web Hacking - Desenvolva na defesa, jogando n...
Palestra - DFJUG Java 20 anos - Web Hacking - Desenvolva na defesa, jogando n...
 
Palestra - Meetup WordPress Brasília 2014 - WordPress vs Hacker
Palestra  - Meetup WordPress Brasília 2014 - WordPress vs HackerPalestra  - Meetup WordPress Brasília 2014 - WordPress vs Hacker
Palestra - Meetup WordPress Brasília 2014 - WordPress vs Hacker
 
Palestra - Flisol DF 2015 - WordPress vs Hacker . Blindando seu WordPress
Palestra - Flisol DF 2015 - WordPress vs Hacker . Blindando seu WordPressPalestra - Flisol DF 2015 - WordPress vs Hacker . Blindando seu WordPress
Palestra - Flisol DF 2015 - WordPress vs Hacker . Blindando seu WordPress
 
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um poucoPalestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
 
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
Palestra - WordCamp Belo Horizonte 2015 - WordCamp Belo Horizonte 2015 - Hack...
 

Último

Último (8)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Palestra - Confraria 0day 2015 - Fatos e mitos sobre desenvolvimento seguro

  • 1. Fatos e mitos sobre desenvolvimento seguro O que a internet diz...
  • 2. Quem sou... ● Desenvolvedor Web ● Pesquisador e Entusiasta da Segurança da Informação ● Aszone ● Amazonense... ● Da terra da Mangaba… ● =)
  • 3. Introdução Quando temos dúvida, onde recorremos ? Antes enciclopédia, hoje temos Google/Bing/Yandex/Baidu. Qual a principal diferença? Agora as referências também têm equivocos e erros.
  • 5. Mitos "Nem tudo que reluz é ouro" Nem todo site relevante tem verdade plena "A pressa é inimiga da perfeição" Rapidez pode ser o seu pior inimigo, com crt+c | crt+v "As aparências enganam" Teste nunca é demais, ataque seu código
  • 7. Sql Injection É Inserção de uma série de instruções SQL dentro de uma consulta (query) para retorno de qualquer tipo de dados que não era para ser retornado.
  • 8. Sql Injection Resultado da pesquisa "Anti sql injection":
  • 9. Sql Injection Resultado da pesquisa "Anti sql injection": ● http://www.scriptbrasil.com.br/forum/topic/168609-funcao-anti-sql-injection/ ● http://forum.imasters.com.br/topic/125349-anti-sql-injection/ ● http://forum.imasters.com.br/topic/276729-seguranca-em-php/ ● http://phpbrasil.com/artigo/v5Ejt4VOld2r/anti-sql-injection--solucao-global ● http://eniomarcelobuza.blogspot.com.br/2012/08/php-funcao-anti-sql- injection.html ● http://www.vivaolinux.com.br/script/Funcao-Anti-MySQL-Injection-Proteja-sua- aplicacao ● https://discussion.dreamhost.com/thread-134658.html
  • 10. Sql Injection Usando SqlMap SqlMap é uma ferramenta que automatiza o processo de detectar e explorar as falhas de injeção SQL.
  • 12. Sql Injection Free Hand Agora fazendo tratamento nas querys manualmente, para dar bypass nas soluções propostas.
  • 13. Sql Injection Segredo do Bypass: *_replace => Age na identificação de algum item setado e altera por outro parametro que desejar. Exemplo: “Select login,senha from tabela_x” => “login,senha tabela_x” Bypass: “Sele*ct login,senha frofromm tabela_x” => “Select login,senha from tabela_x”
  • 14. Fatos
  • 15. Fatos Resultado: Solução do Sql Injection: Se for um id: valide com is_numeric, ou is_bool se for boleano; Se o request for uma string: mysql_real_escape_string();
  • 17. Fatos ● Utilização de frameworks ou cms ● Utilização de padrões de projetos ( DAO ) ● Camada de proteção de erros (50*) ● Aplicação de pentest / code review ● Implementação de logs e notificações ● Filtros nas entradas e saídas de dados ● Metodologia de desenvolvimento seguro