Security Professionals - ipfw add deny all from eindgebruikers to any

Exploiting SQL injection in ORDER BY

28-05-2010, 14:13 door Anoniem, 11 reacties
Hoi hoi,

Ik vroeg me af of er technieken bekend zijn om SQL-injection te exploiten in de ORDER by clause (die werken met mySQL 5+).

deze methodes krijg ik niet werkend:
order by if(true,1,2)
order by (select case when (true) then 1 else 2 end)

Greetingz,
Jacco
Reacties (11)
28-05-2010, 15:19 door Anoniem
P.S.
ik vraag dit niet omdat ik iets wil hacken.
ik vraag dit omdat ik een methode heb gevonden die werkt en me af vroeg of dat er al methodes bekend zijn die werken

Greetingz,
Jacco
28-05-2010, 16:06 door Anoniem
okay, ik heb de ander methodes nu ook werkend; je kunt geen column nummers gebruiken in de methodes die ik niet werkend kreeg

je moet dus minimaal 2 column namen weten om ze werkend te krijgen:
order by if(true,id,price)

en

order by (select case when (true) then id else price end)

maar zijn er methodes die werken zonder dat je informatie hebt over de column namen?
28-05-2010, 16:55 door [Account Verwijderd]
[Verwijderd]
29-05-2010, 12:23 door Anoniem
ja hoor, misschien is een cheat sheet wat voorje:

http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/

maareh, dit is een SECURITY related website, waarom vraag je dan iets over sploiting?
29-05-2010, 12:25 door Anoniem
Moderators of Admins Ban deze Noob Aub.
dit is een Security related website, geen Hacking req site.
29-05-2010, 18:25 door Anoniem
http://www.net-security.org/dl/insecure/INSECURE-Mag-25.pdf
29-05-2010, 19:54 door Anoniem
ik heb deze gebruikt :

order by rand((select char(substring(table_name,1,1)) from information_schema.tables limit 1)<=128)

want
order by rand(true)
geeft een ander resultaat als
order by rand(false)
(tested in mysql 5.0)

Greetingz,
Jacco
30-05-2010, 10:20 door Anoniem
zet er ook even bij - je hebt het immers over mysql 5+ - dat dit soort rommel helemaal niet meer hoeft te kunnen.
Dat soort zut hoort in een stored procedure.
30-05-2010, 15:28 door Anoniem
"ja hoor, misschien is een cheat sheet wat voorje"
waarom wijs je me naar dat cheatsheet? er staat niets over exploiten van sql injectie in ORDER BY

"http://www.net-security.org/dl/insecure/INSECURE-Mag-25.pdf"
In dit document vind ik alleen info over de methodes die je in mijn vraagstelling al ziet.
Dat voegt dus ook niets toe.

Hier vind je een korte write-up over de methode die ik uitgewerk heb:
http://2600nl.net/2010/05/29/exploiting-sql-injection-in-order-by-clause-mysql-5/

Greeting,
Jacco
30-05-2010, 22:25 door Anoniem
"dan gewoon blind uitwerken met sleep() bijvoorbeeld?"

Dat werkt idd ook:
ORDER BY sleep((select 1))

kost alleen iets meer tijd per query maar je kan mogelijk we 1 of meerdere bytes per query enumereren

een combinatie van de bijde methodes zou het aantal benodigde querys/http requests nog verder kunnen terug dringen:

ORDER BY rand(select ..... ),sleep(select .....)

Greetingz,
Jacco
31-05-2010, 05:05 door Anoniem
"- dat dit soort rommel helemaal niet meer hoeft te kunnen.
Dat soort zut hoort in een stored procedure."

Kijk uit met de aannames die je doet;
Het is juist door dit soort foute aannames dat SQL injectie nog steeds veel voor komt.
Een stored procedure geeft geen enkele garantie dat sql injectie niet meer mogelijk is.

http://bugs.mysql.com/bug.php?id=36496
http://palisade.plynt.com/issues/2006Jun/injection-stored-procedures/

Greetingz,
Jacco
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.