Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: Dedal0 en 3 Diciembre 2009, 22:00 pm



Título: Argument Injection - Basic
Publicado por: Dedal0 en 3 Diciembre 2009, 22:00 pm
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:


Código
  1. <?php
  2. if ($access==true) {
  3. echo 'Access Granted.'; }
  4. else {
  5. echo 'Access Denied.';
  6. }
  7. ?>



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.



Título: Re: Argument Injection - Basic
Publicado por: tragantras en 3 Diciembre 2009, 23:09 pm
es rarisimo que algun server tenga la variable register globals en On peeeero siempre podría pasar >,<


Título: Re: Argument Injection - Basic
Publicado por: Castg! en 4 Diciembre 2009, 01:25 am
lo complicado es averiguar el nombre de la variable:S pero podria llegar a funcionar, aunque no creo que alla un $_GET['acces'], es mi idea.


Título: Re: Argument Injection - Basic
Publicado por: tragantras en 4 Diciembre 2009, 14:52 pm
lo complicado es averiguar el nombre de la variable:S pero podria llegar a funcionar, aunque no creo que alla un $_GET['acces'], es mi idea.

no estoy seguro pero creo que al tener el register globals activado no hace falta que se "capture" mediante el get.

pero eso... no estoy seguro jaja


Título: Re: Argument Injection - Basic
Publicado por: WHK en 6 Diciembre 2009, 20:40 pm
Register Globals en php hace que $variable pueda ser modificado con test.php?variable= asi que practicamente todos los sistemas de acceso son vulnerables xD por eso se recomienda siempre tenerlo desactivado.