Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 

De la Théorie à la pratique











Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Vigil@nce : Ruby on Rails, injection SQL via limit ou offset

septembre 2008 par Vigil@nce

Un attaquant peut employer les paramètres :limit ou :offset afin d’injecter une requête SQL via Ruby on Rails.

- Gravité : 2/4
- Conséquences : accès/droits privilégié
- Provenance : client intranet
- Moyen d’attaque : 1 attaque
- Compétence de l’attaquant : technicien (2/4)
- Confiance : confirmé par l’éditeur (5/5)
- Diffusion de la configuration vulnérable : élevée (3/3)
- Date création : 16/09/2008
- Référence : VIGILANCE-VUL-8111

PRODUITS CONCERNÉS

- Unix - plateforme

DESCRIPTION

Le framework Ruby on Rails peut employer une base de données MySQL, PostgreSQL ou SQLite.

La méthode User.find() obtient la liste des utilisateurs, en commençant à un offset et en limitant le nombre d’entrées. Par exemple : User.find(:all, :limit => 10, :offset => 5) Cette fonction effectue une requête SQL de la forme : select * from user LIMIT 10 OFFSET 5 ; Dans un contexte web, les paramètres :limit et :offset proviennent généralement de l’url.

Cependant, les valeurs :limit et :offset ne sont pas vérifiées. Un attaquant peut par exemple employer : User.find(:all, :limit => "10 ; requête_SQL ;", :offset => 5) pour exécuter : select * from user LIMIT 10 ; requête_SQL ; OFFSET 5 On peut noter que ce type d’injection ne fonctionne pas avec MySQL.

Un attaquant peut donc employer les paramètres limit ou offset afin d’injecter une requête SQL via Ruby on Rails.

CARACTÉRISTIQUES

- Références : BID-31176, CVE-2008-4094, VIGILANCE-VUL-8111
- Url : https://vigilance.aql.fr/arbre/1/8111




Voir les articles précédents

    

Voir les articles suivants