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 (No es Real! Es un tipo Pseudo):
<?php
if ($user == 'hola' AND $pass == 'pass'){
$access = $_GET['access'];
$access = 1;
}
if ($access == '1') {
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=&access=0
como ejemplo... ahora si nosotros en ves de esto pusieramos...
http://www.bugged.com/admin/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/
Ahora para reparar este error no hay mucho que hacer en vez de hacer dos ifs distintos uno preguntando asi: si usuario y pass son correctos access = 1 no cojerlo por get en ningun momento por post tampoco sino como session setearlo como session...
Otra cosa deben de asegurar que pida la sessión en el momento de hacer que access cambie a 1...
if(isset($_SESSION['access']))
Saludos,
Dedalo
Esta bueno bro , sigue asi
Que bueno! no sabia de esto! muchas gracias bro!
Ese error era conocido hace tiempo..
Y no es cuando un programador coloca un GET para validar
Eso sucede en versiones viejas de php donde tenian on las variables globales
Recuerdo que ese bug nos divertia hace muchos años..
saludos
Buen complemento BadSekt0r!
Muchas gracias!
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
Ese error era conocido hace tiempo..
Y no es cuando un programador coloca un GET para validar
Eso sucede en versiones viejas de php donde tenian on las variables globales
Recuerdo que ese bug nos divertia hace muchos años..
saludos
mmm primero que nada si te estás guiando por el bug nuevo que salio de cgi bin pues estás confundido es un argument injection por que se inyecta un argumento del php por url y segundo si es que me estubiese equivocando en el nombre OWASP también se estaría confundiendo...
https://www.owasp.org/index.php/Argument_Injection_or_Modification
Saludos,
Dedalo
nop ninguno de los dos.. te hablo de algo q pasaba hace mucho y eso q describis es muy parecido a eso muy parecido..
Este articulo un admin explica
http://blog.sectorhosting.com/tag/register_globals/
Esa vulnerabilidad existia cuando en php.ini la directiva register_globals permanecia en ON
Las nuevas versiones por defecto vienen en OFF
Por lo tanto cada variable debe estar inicializada correctamente y no por ningun tipo de request
Wikipedia podes ver algo
http://en.wikipedia.org/wiki/Session_poisoning
y si ves en el link q me pasaste dice Last revision (mm/dd/yy): 05/27/2009
por eso te digo que es una vulnerabilidad vieja
En fin.. no era para hacerlo tan largo.. es solo eso
era solo un comentario constructivo
Gracias por complementar en todo caso :)
Saludos,
Dedalo
como tu dices... Muchos programadores cometen este error aun!!!
Un dia me topé con un panel de adminitracion de la siguiente forma:
www.web.com/administrador/index.php
le puse cualquier dato en el user y pass y en el URL sucedió...
www.web.com/administrador/index.php?value=False
Simplemente le cambié el False por el True, y Bienvenido =)
Exelente Aporte...
SALu2