Instructeur: In alle lezingen
tot nu toe hebben we SQL-injecties handmatig uitgebuit.
Dus we injecteerden de code in de URL
of in de tekstvakken.
In deze video laat ik je een tool zien genaamd sqlmap waarmee
je alles kunt doen wat we tot nu toe hebben geleerd en
nog meer dingen.
Dit gereedschap kan worden gebruikt tegen MySQL-databases,
zoals die waarop we het voorbeeld hadden.
Het kan ook worden gebruikt tegen Microsoft
SQL, Oracle en andere databasetypen.
Het hulpmiddel is zeer nuttig en komt in veel gevallen goed van pas.
Soms zijn de injecties niet
zo mooi.
Soms krijg je maar één uitgang voor elk record en
moet je alle uitgangen doorlopen.
Dus de tool kan dat automatiseren
en alles veel gemakkelijker en eenvoudiger voor je doen.
Dus laten we eerst de URL ophalen die
we gebruikten voor de injectie.
Dus ik heb dat tekstbestand hier dat we gebruikten en
ik heb de URL die we eerder gebruikten.
Dus het is de gebruiker. info. php, gebruikersnaam
is admin, wachtwoord, adminpass.
Je hoeft niet echt de gebruikersnaam en het wachtwoord
te weten, dus ik zet eigenlijk gewoon alles hier neer.
Dus om aan te nemen dat we het wachtwoord niet
kennen, injecteren we alleen SQL injecties.
We hoeven dit allemaal niet te weten.
Alles wat ik ga doen is dit kopiëren
en dan ga ik sqlmap uitvoeren.
En ik ga u doen om de URL te specificeren
en ik zet mijn doel.
En ik ga ervoor zorgen
dat ik het tussen twee aanhalingstekens
zet, zodat het niets negeert, geen
tekens in het midden, dus we hebben
wat tekens en karakters in het midden
die ik allemaal als één URL wil behandelen.
Dus alles wat ik deed was sqlmap -u mijn doelwit.
En ik druk op Enter en het
gereedschap kijkt automatisch door de parameters,
dus het kijkt door de gebruikersinformatie,
door de gebruikersnaam en het wachtwoord
om te zien of een van hen injecteerbaar is en
zodra het dat doet, slaat het het op
in het geheugen.
Dus het zal weten dat dit injecteerbaar
is en dan kunnen we het doel verder uitbuiten.
Dus zoals je nu kunt zien,
is het denken dat ons doel MySQL of PostgreSQL zou kunnen zijn.
Het vraagt me of het andere tests moet overslaan en
ik zeg ja omdat ik
weet dat het MySQL is.
En nu vraagt het me of het alle tests voor beide databases
moet doen?
En ik ga ja zeggen, ervan uitgaande dat ik niet
zeker weet welke het is.
Ik weet dat het MySQL is, maar ik laat het gewoon zijn ding
doen en we zullen zien of het goed kan of niet.
Dus op dit moment
controleert het of het PostgreSQL is.
En ik neem aan dat het zal weten dat het dat niet
is en dan zal het weten dat het MySQL is.
Het blijkt dat de gebruikersnaam injecteerbaar
is.
En inderdaad, het vertelt ons hier dat de parameter
gebruikersnaam kwetsbaar is en we die kunnen injecteren.
Dus het vraagt me of ik de andere parameters wil controleren,
zoals het wachtwoord en alles?
Ik kan ja zeggen en het laten doen maar ik ga
nee zeggen omdat ik
het niet erg vind als het gewoon de gebruikersnaam gebruikt
voor de injectie zodat het allemaal goed is.
Nu weet sqlmap dat het doel injecteerbaar is en het weet dat het de gebruikersnaam
parameter gaat gebruiken om dingen te injecteren.
En ik kan zien dat het heeft uitgezocht
dat het Linux Ubuntu draait en dat het PHP gebruikt
met Apache 2. 2. 8.
En het gebruikt MySQL Server als database server.
Dus laten we sqlmap --help draaien en kijken wat
we nu kunnen doen.
Nu, dit gereedschap is echt
groot en je kunt er veel mee doen.
Dus op deze video ga ik je eigenlijk
alleen een snelle blik op
de video laten zien en ik raad je aan er meer tijd aan te besteden en
te kijken wat je er nog meer mee kunt doen.
Oké, dus laten we proberen de huidige gebruiker
en de huidige database te krijgen.
Dus we gaan hetzelfde commando gebruiken
als eerder en ik voeg er dbms aan toe om de huidige databases
te krijgen.
Of dbs, sorry.
Zoals je ziet, hebben we alle databases die we hebben.
Dus we hebben dvwa, we hebben information_schema,
metasploit, mysql, owasp10 dat was degene
die we eerder exploiteerden en tikiwiki.
Als we nu current-user doen, zie je dat
we root zijn en als ik current-database
doe, zien we dat owasp10 onze
huidige database is.
Dus laten we nu proberen om de tabellen voor owasp10 te krijgen,
dus denk eraan toen we een select table name deden van information_scheme.
tabellen
waarbij table_schema gelijk is aan owasp10.
We laten sqlmap dat allemaal voor ons doen
en dus wordt het commando, we vragen het
om alle tabellen voor ons op te halen.
En we gaan de D optie gebruiken
om de database te specificeren en onze
database gaat owasp10 heten.
En zoals je ziet, kregen we alle tabellen
die er zijn en onthoud, het is hetzelfde.
We hebben accounts, blogs_table
en de credit_cards ook.
En als we nu de kolommen willen
hebben, dan kunnen we hetzelfde
commando weer gebruiken en zeggen we haal me de
kolommen waarbij de tabel rekeningen heet en de
database owasp10 is.
En hier kunnen we zien dat we de kolommen hebben.
Dus we hebben de is_admin, het wachtwoord en de gebruikersnaam
en we kunnen de gegevens opvragen
met de dump-optie.
Dus het is hetzelfde commando dat we eerder gebruikten.
Dus we halen de tabel die rekeningen heet en de
database die owasp10 heet.
Ik wil dat je me alle gegevens geeft.
En daar gaan we, we hebben alle gegevens.
We hebben de admin, zijn wachtwoord, adminpass
en we hebben adrian en zijn wachtwoord is somepassword.
En we hebben alle gegevens hier.
Dus zoals ik al zei, het instrument is zeer nuttig.
Het kan worden gebruikt om ons leven veel gemakkelijker
te maken en het doet alles automatisch
en het kan zelfs meer dingen doen.