Instructeur: In deze lezing, en de volgende,
gaan we het hebben over een populair
type kwetsbaarheid, genaamd SQL Injecties.
Voordat we gaan praten over hoe dit gebeurt en hoe we het
kunnen uitbuiten, moeten we eerst leren wat SQL is.
Nu, als je een pentest doet op een bepaalde website,
is de kans groot dat deze website wat groter is dan kleinere websites,
dus die gebruikt waarschijnlijk een database.
De meeste websites, behalve heel eenvoudige
websites, gebruiken databases, de databases worden gebruikt om gegevens op te slaan, dus
ze slaan gebruikersnamen, wachtwoorden, nieuwsartikelen, blogberichten,
foto's op.
Alles wat op de website gebeurt, wordt letterlijk
opgeslagen in een database en de webapplicatie bevraagt de database
en toont vervolgens de gegevens aan u of aan de gebruikers,
op het scherm.
Wanneer de gebruikers iets doen, worden de gegevens
in de database bijgewerkt, verwijderd of gewijzigd.
Deze interactie, tussen de webapplicatie
en de database, gebeurt met behulp van een taal die SQL heet.
Dus, laat me je laten zien wat ik bedoel met database,
dit is slechts een voorbeeld,
ik hack niets, ik ga letterlijk
gewoon inloggen op de database die is geïnstalleerd
op onze Metasploitable machine, en dan gaan we gewoon kijken
wat erop is geïnstalleerd.
Dus, ik hack niet, er is niets hier, niets bijzonders,
gewoon inloggen in mijn SQL.
En dan zet ik de gebruikersnaam op root
en de Metasploitable gebruikt geen wachtwoord voor de root,
wat echt slecht is, maar het is duidelijk een kwetsbaar systeem.
Dus, ik ga gewoon inloggen en ik hack niets, ik
doe geen SQL injecties, dit
is gewoon de terminal voor MySQL, die
de webapplicatie zou gebruiken om te communiceren
met de database.
Dus, ik probeer je gewoon te laten zien wat ik bedoel met
databases en wat daarin wordt opgeslagen.
Dus, het eerste wat ik ga doen
is, ik ga gewoon show databases intypen.
En dat toont ons de databases die bestaan
op onze doelserver en je kunt zien dat we het informatieschema
hebben, dit is een standaard database die standaard
informatie bevat, informatie over alle
andere databases.
Dus deze wordt standaard geïnstalleerd als u MySQL
installeert.
De rest is geïnstalleerd voor elke webapplicatie.
Dus, we kunnen zien, we hebben er een voor tikiwiki,
we hebben er een voor owas10, en dat is voor deze Mutilllidae.
We hebben er ook één genaamd mysql, één
genaamd metasploit, en één
voor dvwa, die we hebben gebruikt, de webapplicatie.
Je ziet dus dat we voor elke
webapplicatie een database hebben en die
database bevat de informatie die door die webapplicatie
wordt gebruikt.
Ik zal je laten zien wat
er in zit, dus ik ga de owas10 database gebruiken.
Dus dit is die voor Mutilldae, voor
deze webapplicatie.
En we kunnen de tabel zien, dus elke database heeft een
tabel, tabellen, en in de tabellen staat informatie.
Ik zeg "toon tabellen" om de tabellen te zien die
we hebben.
En je ziet, we hebben een tabel voor accounts,
dus je kunt aannemen dat deze tabel informatie bevat over de gebruikersnamen,
wachtwoorden, en informatie over de gebruikers.
We hebben een tabel voor blogs, dus waarschijnlijk staan daar de bloginputs,
de posts en de comments in.
Je ziet vastgelegde gegevens, creditcards,
dus er is een tabel met creditcards.
Nu, dit is enorm voor winkelwebsites, zij zouden
eigenlijk kredietkaartentabel hebben en de informatie
voor de kredietkaarten zou daar worden
opgeslagen.
In principe slaat de database alles op, alle
gegevens die op de website worden gebruikt.
Omdat ze niet worden opgeslagen in bestanden, het is niet efficiënt.
Dus, laten we eens kijken naar de rekeningen en als ik
gewoon "selecteer" zeg, dan is dit precies hoe de webapplicatie
informatie uit de database haalt, het zal dingen selecteren,
bijwerken of verwijderen.
Dus, ik doe een select statement hier, nogmaals, dit
is niet hacken, ik doe niets, gewoon
dingen selecteren.
En ik ga ster selecteren, wat alles
betekent, van rekeningen.
Apostrof, en zoals we kunnen zien, hebben we het account id, de gebruikersnaam,
het wachtwoord, en dan de handtekening
voor de persoon, en als die persoon
een admin is.
Nu hangen deze kolommen af van de tabel,
dus het is eigenlijk de persoon die de database
ontwerpt, de tabellen ontwerpt, de kolommen ook, en dan worden de gegevens
ingevoegd door de webapplicatie.
U ziet dus dat we een gebruiker hebben die
admin heet en zijn wachtwoord is adminpass.
We zien dat we een gebruiker hebben die adrian heet
en zijn wachtwoord is somepassword.
Dus, dit is gewoon om je te laten zien hoe databases eruit zien, en gewoon om er een gevoel
bij te krijgen, want in de toekomstige video's
gaan we proberen deze databases te exploiteren
en toegang te krijgen zoals deze.
Dus dit, ik log nu in met een gebruikersnaam
en een wachtwoord, normaal
heb je die toegang niet, alleen de webbeheerder
heeft die toegang.
In de toekomstige video's gaan we proberen wat aanvallen uit te voeren om toegang
te krijgen zoals deze, zodat we volledige controle
krijgen over de database, zodat we dingen kunnen
lezen en kijken of we dingen kunnen schrijven
of wijzigen.