miércoles, 28 de julio de 2010

Inyección SQL en Electronica Suiza

Electronica Suiza es una conocida tienda online sponsorizada por el, aún más conocido, foro ZackyFiles. Esta tienda online se caracteriza por disponer de gran cantidad de productos relacionados con la televisión digital, satélite y también componentes electrónicos, tarjetas, etc.

Es curioso ver como una tienda online tan reconocida no filtra el campo más típico para realizar este tipo de ataques, es decir, el buscador de la propia tienda. Con una ' (comilla) en dicho buscador es más que suficiente para producir un error de MySql y ver la consulta completa que se ejecuta en el servidor.


También se puede acceder a este mensaje de error desde la ficha de cualquier producto ya que utilizan la misma consulta de búsqueda.


o incluso desde la ficha técnica del producto


En el caso de la ficha técnica la consulta que se muestra es bastante simple y podemos modificarla sin mayor problema, por ejemplo, utilizando el típico UNION para devolver información extra a la consulta. En este caso no tendremos que "tantear" para saber cuantos campos requiere nuestra nueva consulta porque en el mensaje de error se muestra la consulta completa y se puede ver que son cuatro campos (prodsdescr, proddescr, prodtpic, prodficha) que nosotros podemos modificar a nuestro gusto por ejemplo, con la siguiente consulta.


Una particularidad de la consulta "inyectada" es que, en lugar de solicitar el códgio de producto 7038 he solicitado el -7038 de forma que no se encontrará dicho código y, en su lugar, mostrará los datos 1, 2, 3 y 4. Si no se hubiera puesto el signo negativo (o cualquier otro valor inexistente) se seguiria mostrando el producto indicado sin mostrar ningun error. También hay que tener en cuenta que al final de la consulta inyectada se pone /* para que MySQL piense que el resto de la consulta son comentarios que no debe tener en cuenta, es decir, es una forma de evitar el WHERE de la consulta original "and prodlid = 1"

Como se puede ver, podemos "modificar" la ficha tecnica de cualquier producto para que muestre la información que deseemos simplemente modificando la URL, por ejemplo, con la siguiente URL




obtenemos esta "chorradilla":


Aunque también podriamos utilizar esto para hacer un XSS ya que todo lo que escribimos en esa página se muestra sin filtrar de forma que podemos escribir código HTML y/o JavaScript sin problemas.


PD: Electronica Suiza fué informada de estos problemas antes de la publicación de este post.

No hay comentarios:

Publicar un comentario