Banner 1

Form-Tampering (laboratorio)

FORM TAMPERING

Este metodo consiste en modificar los datos "ocultos" del formulario que use la web victima para algun beneficio, en este ejemplo, veremos un simple (bastante sencillo xD) ejemplo sobre un "carrito de compra", para modificar los precios de los productos.

Código PHP:
// Form tampering bug PoC
$presupuesto = 100;
$compra = strip_tags($_POST***91;'producto'***93;);
function correcto(){
global $compra;
echo "Felicidades $compra comprado correctamente";
}
if(isset($_POST***91;'producto'***93;) && !empty($_POST***91;'producto'***93;)){
if($presupuesto >= $_POST***91;'v_botella'***93;){
correcto();
}else if ($presupuesto >= $_POST***91;'v_cervesa'***93;){
correcto();
}else{
echo "Lo sentimos, no tienes los fondos suficientes";
}
}else{
if(isset($_POST***91;'send'***93;)){
die("Debes seleccionar un producto");
}
echo "Tu presupuesto es : $presupuesto";
?>







Como podemos observar, tenemos los precios de los productos en un atributo "hidden". Bien, ¿Cómo podemos aprovecharnos de eso?.

MODIFICANDO CABECERAS HTTP

Lo que vamos a hacer, es "sniffear" lo que nuestro navegador manda al servidor (cabeceras http), vamos a hacer esto con el http live headers (Add-on de Firefox). Despues de instalarlo en nuestro navegador, vamos a la página donde tenemos alojado nuestro PoC y abrimos el add-on, hacemos una petición simplemente "tratando" de comprar un producto y nos damos cuenta que en el live headers nos ha salido la petición http que hemos hecho.

Algo así:

Código: Host: 127.0.0.1 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://127.0.0.1/bugs/formtamp.php Content-Type: application/x-www-form-urlencoded Content-Length: 60

Y:

Código:producto=Botella&v_botella=500&v_cervesa=200&send=Comprar%21

Ahora vemos que podemos modificar los valores de los productos, cambiamos a 0 y le damos a repetir/replay

Código:producto=Botella&v_botella=00&v_cervesa=00&send=Comprar%21

Y vuala!  , hemos comprado el producto 

Fuente: http://masters-hackers.info/showthread.php?t=20321

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay