El problema, de acuerdo con el aviso, es que debido a la forma dinámica en que se extraen las opciones desde el método "params", un parámetro puede ser usado como un campo de aplicación y se podría inyectar un SQL arbitrario. Los buscadores dinámicos utilizan el método "name" para determinar qué campo se está buscando, por lo que una sentencia del tipo:
Post.find_by_id (params [: id])sería vulnerable a un ataque y se podría inyectar:
User.find_by_id({:select =>"* from users limit 1 --"})
User Load (0.5ms) SELECT * from users limit 1 -- FROM "users" WHERE "users"."id" IS NULL LIMIT 1
El problema original se dio a conocer en el blog Phenoelit a finales de diciembre, donde el autor aplica la técnica para extraer las credenciales de usuario de un sistema de Ruby on Rails, eludiendo el marco de autenticación Authlogic.
Fuente: Seguridad UNAM
No hay comentarios.:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!