lunes, 21 de marzo de 2011

SQL Inyección con PHP. PARTE II

Continuando con lo anterior en el que vimos una pequeña introducción a la Inyección SQL, creo que para mostrar la inyección sql es mejor si nos hacemos un ejemplo practico verdad, pues bien manos a la obra.

Mi ejemplo practico esta hecho en:
SO: Linux Debian Squeeze
Mysql:  5.1
PHP: 5.3
Apache
Editor PHP Bluefish
Navegador Chromium




Crearemos una base de datos inyección de esta manera:
mysql> create database inyeccion;
Usamos nuestra base de datos:
mysql>use inyeccion
Creamos una tabla usuario con 4 campos, id, login , password, email
mysql>create table usuario(id int primary key auto_increment, login varchar(30), password(50), email varchar(50));
Agregamos datos a la tabla:
Insert into usuario values(null,"Hiram","passw_hiram","email_hiram"),
(null,"Edgar","passw_edgar","email_edgar"),
(null,"Luis","passw_luis","email_luis"),
(null,"Isai","passw_isai","email_isai");
Ahora ya tenemos nuestra base de datos, lo que prosigue es hacer un script en php para hacer nuestras pruebas, abrimos nuestro editor php, yo les recomiendo esté, o usen el que mas les acomode o guste.

El script php se llamara inyecciones.php, contendrá un campo de texto(input) para poder hacer nuestros ejemplos de inyecciones, y un botón para enviar el valor.

<html>
<head>
  <title>SQL Injection</title>
</head>
<body>

  <form action="inyecciones.php" method="get">
     <label for="id">ID: </label>
     <input type="text" id="id" name="id" />
     <input type="submit" value="Iniciar" />
  </form>

<?php
if( isset($_GET['id']) )
{
  $id    = $_GET['id'];

  $mysqli = new mysqli('localhost', 'root', '');

  $mysqli->select_db('inyeccion');

  $consulta = 'SELECT * FROM usuario WHERE id='.$id;

  echo $consulta.'<br />';

  $resultado = $mysqli->query($consulta);

  $usuario = $resultado->fetch_row();
  echo 'DATOS DEL USUARIO: <br />';
  echo 'ID: '.$usuario[0].'<br />';
  echo 'LOGIN: '.$usuario[1].'<br />';
  echo 'EMAIL: '.$usuario[3].'<br />';

  $resultado->free();

  $mysqli->close();
}
?>
</body>
</html>

Seguido de esto ejecutamos el script en el navegador, se mostrara de esta forma:


Podemos jugar un poco con el formulario ingresando el id que queremos buscar, en la próxima entrada empezaremos a "inyectar" código sql, así que tienen tiempo de hacer la base y el script anterior para empezar a probar el ejemplo.

No hay comentarios:

Publicar un comentario