Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Dedal0

#1
Nivel Web / Argument Injection - Basic
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 (php) [Seleccionar]

<?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.

#2
Nivel Web / Tutorial XSRF 2 Pentest
3 Diciembre 2009, 21:50 PM
Este Bug es muy especial ya que con este podemos robar dinero de una manera muy fácil si el sistema de seguridad del banco no es bueno...


Primero quiero explicar un poco como funciona el ataque...

Nosotros descubrimos que las cookies de un banco duran mas del tiempo que deberían durar entonces si nosotros entramos a:

http://feisbuk.com --> nos logueamos

nos manda a:

http://feisbuk.com/home

ahora si nosotros entramos mañana y las cookies no se vencen como deberían y hay problemas con las sessiones entonces nos debería de mandar a

http://feisbuk.com/home --> sin haberse logueado el mismo dia

Ahora digamos que queremos agregar un amigo a feisbuk, nuestro amigo será Jorge Romero.

POST http://feisbuk.com/friends.php HTTP/1.1
...
...
...
...
======================
name=jorge&lname=romero


Como vemos tenemos la parte importante, lo que nos interesa es: name=jorge&lname=romero una ves que tenemos eso el resto ya es más fácil.

si nosotros quisieramos información sobre un tal david andrade el cual no nos acepta como amigo y sabemos que le gustan los carros podriamos hacer lo siguiente...

desde:

un mail cualquiera (podemos usar un mailer) mandarle un correo falso incluyendo lo siguien en el mail:


<a href="http://feisbuk.com/friends.php?name=seguridad&lname=blanca">Click para ver los últimos carros </a>


Si el diera click nosotros podriamos obtener su admistad automatica en feisbuk...

lógico esto no debería ocurrir por que los bancos deberían poner ciertos tokens que duren minutos para agregar amigos y siempre ver referer y una cantidad de cosas para proteger al usuario.


Ahora si viene la parte que a muchos le ha de gustar y a otros le divertirá aprender esto...


Explotandolo en un banco:

Nuestro usuario del banco Armando Bronca le ah hecho una tranferencia de 10 Dolares a Perico Palotes y cuando dio click lo que se hizo fue esto...

http://bancodelanacionytodoslospaises.com/account/transferir.php?acct=pericopalotes&amount=10&moneda=dolar

ahora vamos a hacer lo mismo que hicimos en FeisBuk...

le mandamos un mail a nuestra victima que le gustan las motos diciendo algo como:


<a href="http://bancodelanacionytodoslospaises.com/account/transferir.php?acct=nosotros&amount=100000000&moneda=euro">Click aquí para ver las últimas motos </a>


Si nuestra victima da click nos habrá transferido mucho dinero...

ahora comprenden la gravedad sin mencionar los robos de información que ocurren por este bug...



Como podemos evitarlos siendo admin?

- Agregar tokens a casi todo
- siempre ver referer
- asegurar de que se caduquen las cookies y/o Sessiones


Con los tips de arriba creo que ya no sería tan fácil explotar algo como esto...

y como usuario?

- asegurate que las urls sean reales siempre
- no confies en la publicidad enviada por correo de sitios que no son serios


Bueno espero que con esto haya podido explicar que es el CSRF...


Saludos
Dedalo