17 may 2011

BadStore, aprende seguridad Web sin meterte en líos II

Buenas a todos, continuando con la pasada entrada donde hablábamos sobre Badstore, hoy vamos a comenzar a analizar algunas de las vulnerabilidades que presenta este portal, las explotaremos, y analizaremos la información que es posible obtener.

Nada más comenzar nos encontramos con un textbox en el que podemos buscar un producto determinado en la tienda. Si no insertamos ningún valor y pulsamos sobre la lupa, el portal nos devuelve la siguiente información:

 

 

Como se puede ver hace una select de algunas columnas de la tabla itemdb, pero en el WHERE no contiene nada porque nosotros no hemos introducido ningún valor en el textbox.

Se puede intuir que ésta llamada a BBDD es vulnerable a SQL Injection. Por ejemplo para devolver todos los productos almacenados en la tabla podríamos insertar la query:

' or '1'= '1' --

Para así anular el WHERE y toda la parte del IN (itemnum, sdesc, idesc).  Importante que después del "--" haya un espacio. Un equivalente al uso de "--" para comentar código sería el uso de la almohadilla:

' or '1'= '1 #

Con esto se devolverían todos los productos de la BBDD:

 

 

Otra vulnerabilidad interesante es la del libro de visitas. Si probáis a insertar el siguiente script, muy simple:

<script>alert(‘XSS’)</script>

Os daréis cuenta que se trata de un XSS persistente, ideal para realizar un ataque por ejemplo con Beef.

 

 

Continuemos, si ahora accedemos a la sección de login y ponemos una simple comilla:

 

 

El sistema nos presentará el siguiente error:

 

 

De nuevo tendremos otro caso de SQL Injection, que podremos explotar por ejemplo con:

' or '1'='1' –

De esta manera estaremos entrando con el primer usuario de la tabla donde se encuentren los usuarios de la BBDD, que en este caso parece que se trata de “Test User”:

 

 

¿Y vosotros que más vulnerabilidades os habéis encontrado en Badstore?

Saludos!

3 comentarios:

  1. :D aora mismo estoy estudiando todo esto de la inyeccion estoy muy interesado y su pagina me agrado :D que bien!!! buen diseno!!!!

    ResponderEliminar
  2. En la base de datos, el usuario root no tiene clave. puedes observar todas las tablas y todos los registros.

    ResponderEliminar