Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] injection SQL sur addItemOrder jelix 1.3.2

Posted by Nigoki on 12/14/2012 12:23

Bonjour,

Je viens de découvrir à mes dépends une faille de sécurité sur la méthode addItemOrder de jDaoCondition.

Si le deuxième paramètre n'est pas valide (ASC ou DESC), celui ci est simplement inséré dans la requête. Je suis d'accord que passé ce paramètre dans l'URL ce n'est pas glop du tout.

Passons à la démo:

/index.php?module=earning&action=galery:displayGalery
array (   'module' => 'earning',   'action' => 'galery:displayGalery',
  'p' => 'week',   'day' => '0',   'month' => '0',   'year' => '0',  
'sort' => '3',   'order' => '-1\'OR 1=1 AND 1=(SELECT
IF((IFNULL(ASCII(SUBSTRING((SELECT @@VERSION),1,1)),0)>0),1,2))-- ',  
'offset' => '0',   'page_size' => '3', )

L'erreur générée :

SELECT * WHERE 
blabla ORDER BY
monchamp -1'OR 1=1 AND 1=(SELECT
IF((IFNULL(ASCII(SUBSTRING((SELECT @@VERSION),1,1)),0)>0),1,2))-- 
LIMIT
0,3))

  [Opened] injection SQL sur addItemOrder jelix 1.3.2

Reply #1 Posted by laurentj on 12/14/2012 14:29

Bonjour,

Ok, on peut faire du SQL injection. Mais je n'arrive pas à voir comment on peut obtenir une requête qui fonctionne. Ton exemple ne fonctionne pas (en remplaçant blabla, monchamp etc)

  [Opened] injection SQL sur addItemOrder jelix 1.3.2

Reply #2 Posted by laurentj on 12/14/2012 14:54

J'arrive à faire un

SELECT * FROM matable ORDER BY id, (SELECT 3 FROM...)

à part me renvoyer une liste dans un ordre inattendu, rien de bien mal..

Des idées ?

  [Opened] injection SQL sur addItemOrder jelix 1.3.2

Reply #3 Posted by Nigoki on 12/19/2012 18:04

Oui en effet on ne peut rien récupérer, mais on peut faire une sous requête qui lock des tables.

Enfin, on ne m'y reprendra plus à faire des trucs sales !

Merci.

  [Opened] injection SQL sur addItemOrder jelix 1.3.2

Reply #4 Posted by laurentj on 01/02/2013 10:38

Ok. mais il est vrai qu'il serait quand même intéressant de vérifier les valeurs entrantes, pour au moins éviter les erreurs de requêtes. http://developer.jelix.org/ticket/1503

 
Page
  1. injection SQL sur addItemOrder jelix 1.3.2