[TUTORIAL]Como se protger sql injection simples.

Started by Anonymous, 29 de March , 2007, 01:43:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Bem, segue meu primeiro post no darkers, nunca havia entrado e nao sei nada sobre o forum, ou pelo menos muito pouco.esse tutorial Explica como vc pode se proteger de ataques a sql injection ( lembrando que sql injection e muito mais do que alguns digitos  ::) ) MAs vou tentar da uma força, aceito criticas construtivas e comentarios  ;)

=========================================================
Creditos: bluckbuobleoo (  PU BUGER'S CREW -> www.pusafe.com )
=========================================================

&tuto


Muitos sites hoje em dia sofre ataques a SQL injection
Cada vez mais esses ataques aumentam
Vou tentar "killar" os scripts kiddies e tentar mostrar como Voce pode se proteger.

Exemplo de script vulneravel:



 
      $user = $_POST['usuario'];
      $pass = $_POST['pass'];

...............

WHERE codigo = ' {user} ' and pass = '{pass}';

------------------------------------------------------- 

$user = $_POST['usuario'];
$pass = $_POST['pass'];
||
\/

Aqui ele usa o Método post para autenticação
Mas não verifica corretamente ...
Se tentamos injetar ' or ' no User e no pass veja o que acontece

WHERE codigo = ' {user} ' and pass = '{pass}';
||
\/
WHERE código = ' ' or ' ' and pass = ' ' or ' ';

entao o ' or ' = Usuario e Senha

com isso o invasor Consegue acesso



E agora bluck?O que tenho que fazer?
Existe Muitas soluções que resolvem cada uma mais simples que outro ...
um jeito simples e adicionar a função = addslashes
e botar para Add uma barra invertida em cada Caractere encontrado

$usuario_escape = addslashes($user);
$usuario_escape = addslashes($pass);

---

WHERE codigo = ' {$usuario_escape} ' and pass = '{$usuario_escape}';

Com isso ja da pra ter uma "certa" proteção, pois nada e 100 % seguro

Outro meio pratico seria por para verificar se uma aspa foi digitada, e se foi ir para uma pasta de erro

como?

||
\/

If InStr(Request.FORM("nome"), Chr(39)) Then Response.redirect"erro.asp"


Tem outras injeções que nao usam aspas

Como proteger?
ahhh ja falei tudo ahuhuaah

agora usem a imaginação
e fiquem sempre ligados a os alertas de segurança

grato.
by bluckbuobleoo

www.pusafe.com

Anonymous

legal cara.

ficou bem facil de entender.

parabéns.!

rog

legal

seria bom conferir se o magic_quote_gpc esta on antes de addslashar ele senao vc tera um duplo ou triplo quote addslashado e na hora de tirar o commando strip so limparar um

rog
realty.sys is corrupt :  reboot the universe (Y/N)