0% acharam este documento útil (0 voto)
112 visualizações4 páginas

Entendendo SQL Injection em PHP

O documento descreve o que é um ataque de SQL Injection, como funciona e como pode ser realizado. Explica que ao enviar dados não tratados para um banco de dados através de uma página da web, um atacante pode manipular os comandos SQL para acessar informações não autorizadas ou realizar ações não permitidas no sistema. Demonstra um exemplo prático em que um login é realizado com sucesso ao adulterar os dados enviados para retornar todas as linhas da tabela de usuários.

Enviado por

Debora Bastos
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
112 visualizações4 páginas

Entendendo SQL Injection em PHP

O documento descreve o que é um ataque de SQL Injection, como funciona e como pode ser realizado. Explica que ao enviar dados não tratados para um banco de dados através de uma página da web, um atacante pode manipular os comandos SQL para acessar informações não autorizadas ou realizar ações não permitidas no sistema. Demonstra um exemplo prático em que um login é realizado com sucesso ao adulterar os dados enviados para retornar todas as linhas da tabela de usuários.

Enviado por

Debora Bastos
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Ataques de SQL Injection

Autor: Denilson Vedoveto Martins


1. Introduo

A segurana de redes um assunto muito presente no ambiente corporativo e exige
ateno especial, principalmente quando se trata de informaes armazenadas em
bancos de dados acessados via web.
Uma das tcnicas de fraude mais conhecida pelos desenvolvedores web o SQL
Injection. Trata-se da manipulao de um comando SQL atravs das variveis que
compem os parmetros recebidos por um script server-side, tal como PHP, ASP,
ColdFusion e outros.
O principal motivo pelo qual deve-se criar medidas de proteo contra o SQL Injection
est no fato de que, atravs de um simples comando SQL em uma pgina web da
empresa, possvel listar todo o banco de dados e at mesmo itens do sistema
operacional, tendo em vista que alguns bancos de dados permitem a execuo de
comandos do shell do prprio sistema operacional.
Para entender o SQL Injection, vamos utilizar um exemplo em PHP para entender o
funcionamento de um comando SQL vlido gerado por uma pgina web. Para isso,
vamos considerar a tela de autenticao encontrada em diversos sistemas web:


Figura 1

O cdigo fonte dessa pgina possui 2 variveis, a primeira com nome "login" que tem
o nome do usurio, neste caso jose, e a segunda com nome "senha" que tem a senha
do usurio, neste caso jose1234:




Figura 2
<form action="[Link]" method="post">
Username <input type="text" name="login" />
Password <input type="password" name="senha" />
<input type="submit" />
</form>

Assim que o usurio clicar no boto "Login", o contedo do formulrio ser enviado ao
servidor que tem o seguinte cdigo para ser executado:







Figura 3

Substituindo os valores de "login" por jose e "senha" por jose1234, temos o seguinte
comando SQL:


Figura 4

Esse comando verifica na tabela usuarios se existe uma linha com o login jose e
senha jose1234, se existir, o comando SQL retornar 1 linha de resultado, ento o
usurio jose receber a mensagem "Login OK" e entrar no sistema. Caso contrrio
nenhuma linha ser retornada e receber a mensagem "Login ou senha invlidos" e
no entrar no sistema.


<?php
$sql = "SELECT * FROM usuarios WHERE login = '{$_POST['login']}' AND
senha = '{$_POST['senha']}'";
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0) { <--- LINHA IMPORTANTE
print "Login OK";
}
else {
print "Login ou senha invlidos";
}
?>

SELECT * FROM usuarios WHERE login = 'jose' AND senha = 'jose1234'

2. O ataque SQL Injection

Para ilustrar o conceito de SQL Injection, vamos considerar o mesmo exemplo
anterior, mas dessa vez um atacante tentar acessar o sistema como usurio jose e
sem saber a verdadeira senha deste usurio.

Figura 5

Conforme fizemos no exemplo anterior, substituindo os valores de "login" por jose e
"senha" pela string xxxx' OR TRUE -- , desta forma, temos o seguinte comando SQL:


Figura 6

O servidor vai avaliar o comando SQL da seguinte forma:





Figura 7

Essa consulta vai retornar todas as linhas da tabela usuarios. Assim, como o nmero
de resultados da consulta maior que zero (ver "LINHA IMPORTANTE" na Figura 3),
o atacante conseguir efetuar o login como jose.
Isto foi possvel pois o valor de entrada informado nos campos "login" e "senha" no
receberam o tratamento devido. Diversos outros tipos de ataque via SQL Injection so
possveis, como retornar dados de outros usurios, listar tabelas que um usurio no
tem acesso, apagar informaes de uma tabela, inserir informaes em uma tabela,
dentre vrios outros.

SELECT * FROM usuarios WHERE login = 'jose' AND senha = 'xxxx' OR
TRUE --'

3. Referncias

[1] [Link]
[2] [Link]
[3] [Link]
[4] [Link]

Ataques de SQL Injection 
Autor: Denilson Vedoveto Martins 
1. Introdução 
 
A segurança de redes é um assunto muito presente
Assim que o usuário clicar no botão "Login", o conteúdo do formulário será enviado ao 
servidor que tem o seguinte código par
2. O ataque SQL Injection 
 
Para ilustrar o conceito de SQL Injection, vamos considerar o mesmo exemplo 
anterior, mas dessa
3. Referências 
 
[1]  http://imasters.com.br/artigo/5179/php/sql_injection_no_php_o_que_e_e_como_se_proteger/ 
[2] http://ww

Você também pode gostar