16 abr 2014

Creando un entorno vulnerable. Parte 2

Buenas a todos, continuando con la cadena de artículos sobre la creación de un entorno vulnerable, hoy vamos a construir una página web sencilla vulnerable a SQL Injections.

En primer lugar crearemos una BBDD en Mysql, a la que llamaré "cursoseguridad". Dentro de ella crearé una serie de tablas típicas que tendría el sitio web de una organización, como por ejemplo, una tabla con los empleados que trabajan en la misma.



En segundo lugar vamos a programar una sencilla aplicación en PHP que devuelva por pantalla el nombre y apellidos de todos los empleados que tengan como nombre el texto pasado en el parémetro "nombre" por GET.
<?php
    $dbhost="localhost";
    $dbusuario="root";
    $dbpassword="";
    $db="cursoseguridad";
    $conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);
    mysql_select_db($db, $conexion);
?>
<html>
    <head>
    </head>
    <body>
        <?php
            $query="SELECT * FROM empleados WHERE nombre='".$_GET["nombre"]."'";
            $resultado = mysql_query($query);
            if($fila = mysql_fetch_array($resultado))
            {
                do{
                    echo $fila[0].' - '.$fila[1].'<br/>';
                }while($fila = mysql_fetch_array($resultado));
            }
        ?>
    </body>
</html>


Si ponemos por ejemplo el texto Laura, nos pintará el nombre y apellidos de la única Laura que por el momento existe en BBDD:

Y si intentamos realizar una inyección sencilla del tipo "http://localhost/sqlinjection1.php?nombre=Laura%27%20or%20%271%27=%271", veremos como nos devuelve todos los campos de la tabla "empleados":


Eso es todo por hoy, nos vemos en el próximo post de la cadena.
Saludos!

No hay comentarios:

Publicar un comentario