viernes 13 de noviembre de 2009

Errores en Autentificación

Cuantas veces no hemos visto un log-in que no es vulnerable a sql injection pero queremos entrar a como de lugar, una idea sería brute-force pero... no siempre hay una respuesta...

Ahora les voy a mostrar un error que algunos programadores aun cometen, la idea es que cuando el usuario y la pass coninciden hacen que una variable X cambie a true, ahora la preguntasa es que pasaría si nosotros hicieramos que la variable a taves de un GET se ejecutara?


Un Ejemplo:



<?php
if ($access==true) {
echo 'Access Granted.'; }
else {
echo 'Access Denied.';
}
?>



Como ven en el caso de que access sea true te deja entrar... yo me pregunto que pasaría si nosotros por ejemplo...


http://www.bugged.com/admin/login.php

ahi ponemos un usuario para bypass con sql injection y no funciona entonces nos regresa a la misma página... pero nos mostrará algo como lo siguiente:


http://www.bugged.com/admin/login.php?user=&pass;=

como ejemplo... ahora si nosotros en ves de esto pusieramos...

http://www.bugged.com/login.php?access=1

ahi tambiaríamos a true la variable access ahora como la mayoría de personas no ponen una seguridad a sus paneles de control solo faltaría ir a

http://www.bugged.com/admin/

y ver que estamos logueados como administradores... es algo muy raro como pueden pasar estas cosas pero como condicion para que funcione bien los register_blobals en ON, eso que dije es configuración del PHP.INI un archivo como el .htaccess que podremos ver despues...


Ahora para reparar este error no hay mucho que haces, básicamente primero que todo deberíamos de ponerle un htaccess a la carpeta ADMIN que solo permita que ingresemos desde sierta IP, con programación tambien podemos asegurarnos de que solo entren con un tipo de navegador...

Otra cosa deben de asegurar que pida la sessión en el momento de hacer que access cambie a 1...

if($_SESSION['access']

algo así es como se debería ver... mm bueno.. espero no cometan estos errores por que pueden causar mucha perdida de información.


Saludos
Dr.White