Seminário PHP Injection/ SQL Injection

1,892 views
1,785 views

Published on

Seminário apresentado na Faculdade Evolução sobre PHP Injection/ SQL Injection, com uma amostra da intrusão que esta na 1ª colocada no hank da OWASP

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,892
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
64
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Seminário PHP Injection/ SQL Injection

  1. 1. Trabalho sobrePHP Injection & SQL Injection GILBERTO BRITO BARBOSA CARLOS MAX DE SOUZA FRANÇA ROBERTO SOUSA DE LIMA JUNIOR DAVI RODRIGUES PINTO
  2. 2. PHP Injection
  3. 3. Consiste em injetar um código dentro de uma página ouprograma vulnerável, cuja linguagem de programaçãoé PHP, nesta falha o invasor poderá injetar arquivos“*.php” para rodar comandos dentro do servidor ou atemesmo obter uma Shell direto do servidor, a falha podeser considerada comum pois PHP é uma linguagem defácil aprendizagem, então muitos programadores semexperiência criam sistemas ou sites, e acabamesquecendo da segurança do código, vamos mostrarum pouco dessa “INSEGURANÇA” a seguir.
  4. 4. <?php if (isset($_GET[pagina])) { $arquivo = $_GET[pagina]; } else { $arquivo = home.php; } include ($arquivo);?>
  5. 5. SQL Injection
  6. 6. SQL Injection é uma técnica de injeção de códigoque explora uma vulnerabilidade de segurançalocalizada na camada de banco de dados(database layer) da aplicação. Na prática éutilizada por hackers (ou não) para ter acesso aobanco de dados do site da vítima sem que eleprecise de um login ou uma senha efetivamentepara fazê-lo.
  7. 7. Para entendermos melhor como funcionam osataques via injeção de códigos SQL (SQL Injection),vou utilizar um caso bem comum entre osprogramadores para que vocês se familiarizem commais facilidade.Pense em um formulário para login no sistema euma consulta na base de dados para verificar sedeterminado usuário e senha existe em na base dedados.
  8. 8. Agora no campo senha vamos inserir o seguinteconteúdo:admin123’; DROP TABLE usuarios; --Seria interpretado assim:SELECT usuario,senha FROM usuarios WHERE usuario= ‘admin’ AND senha=‘admin123’; DROP TABLEusuarios; --’;
  9. 9. Primeiro: Separe sempre a exibição de erros em2 ambientes, o ambiente de desenvolvimento e oambiente de produção. O ambiente dedesenvolvimento pode ter qualquer tipo de erroemitido na tela, afinal, você precisa ver os errospara tratá-los, no ambiente de produção omitaqualquer tipo de erro, qualquer erro pode ser umapista para o hacker descobrir detalhes sobre o seuambiente.
  10. 10. Hackers enviaram para o site MySQL.com em um determinadoformulário um comando que, se não for interpretado pelo site,pode fornecer dados que antes eram sigilosos. E foi o queaconteceu no caso das bases de dados do site, ironicamenteum dos criadores da base de dados de código aberto SQL.O responsável pelo ataque publicou então todos os dados queobteve, o que inclui não só nomes de bases de dados e seuscampos como também usuários e senhas criptografadas.Pouco mais tarde, a base de dados do site Sun.com, quecomprou a empresa por trás da tecnologia MySQL, também foicomprometida por meio do mesmo Hacker.
  11. 11. Segundo: Filtre todo o tipo de variável dados quevem de urls ou inputs de formulário $_GET ou$_POST para que nenhum dos dados imputadospelo usuário possa ser interpretado como parte dainstrução SQL.
  12. 12. EXEMPLO DE UMAINJEÇÃO DE CÓDIGO. By Davi Rodrigues

×