Dentro del archivo introduciremos el siguiente código PHP, en el que incluiremos una variable con un XML, que a modo de BBDD guardará un usuario y una contraseña, y al que intentaremos acceder más adelante mediante Xpath:
<?php
$user = $_GET["user"];
$pass = $_GET["pass"];
$string = <<<XML
<users>
<user>
<username>admin</username>
<password>fluprojectmola</password>
</user>
</users>
XML;
$xml = new SimpleXMLElement($string);
$resultado = $xml->xpath("//users/user[username/text()='" . $user . "' and password/text()='" . $pass . "']");
if($resultado)
echo 'Correcto';
else
echo 'Incorrecto';
?>
Si intentamos acceder a la URL sin indicar ningún parámetro deberíamos ver un error como el siguiente:
Ya sabemos que la aplicación espera dos parámetros, "user" y "pass".
Si introducimos los parámetros correctamente, veremos por pantalla el mensaje "correcto":
Y de la misma manera, si los introducimos mal, nos saldrá el mensaje "incorrecto":
Si intentamos hacer una inyección sencilla, aunque no consigamos robar el usuario y contraseña, nos cantará la función utilizada para acceder a la BBDD XML:
Con estas pistas ya lo tenemos un poco más facil para acertar con una inyección válida:
0 comentarios:
Publicar un comentario