-In dit deel gaan we het hebben over
penetratie van webtoepassingen.
Voordat we daarover kunnen beginnen,
moeten we begrijpen wat een website is.
Zoals ik al eerder zei, is
een website slechts een toepassing die op een computer is geïnstalleerd.
Die computer heeft waarschijnlijk gewoon betere
specificaties dan uw
computer, maar werkt in wezen precies hetzelfde als
een andere computer.
Het heeft een besturingssysteem
en ook een aantal toepassingen waarmee
het als webserver kan fungeren.
De belangrijkste twee toepassingen die
het waarschijnlijk heeft is een webserver en een database.
Een webserver is als Apache,
en een database is als MySQL.
De webserver begrijpt en voert de webapplicatie
uit.
Uw webapplicatie wordt geschreven in PHP of Python, in om het even
welke programmeertaal, eigenlijk.
Alleen moet de webserver
deze webapplicatie kunnen
begrijpen en uitvoeren.
De database bevat de gegevens die door de webapplicatie worden gebruikt.
Dit alles wordt opgeslagen op een computer die de server wordt genoemd.
De computer is verbonden met het internet, en
heeft een echt IP-adres, dus iedereen
kan toegang krijgen tot die computer en hem pingen.
De webapplicatie wordt uitgevoerd door de webserver
die is geïnstalleerd op uw server, op uw doel.
Telkens wanneer u een pagina opvraagt of een webapplicatie
uitvoert, wordt deze dus
uitgevoerd op de webserver, en niet op
de computer van de klant.
Het wordt uitgevoerd op de webserver,
en stuurt dan een HTML-pagina die klaar is om gelezen te
worden door de doelpersoon of de cliënten.
Laten we eens kijken naar een voorbeeld.
Laten we zeggen dat je aan de telefoon bent of op je computer en je wilde
naar facebook gaan. com.
Dus, je typt facebook in. com in uw URL.
Dit wordt met behulp van een DNS-server vertaald naar een
IP-adres.
Er is een server die elke naam vertaalt,... com, . edu, of elke website met een domeinnaam, dus dit is een domeinnaam,
naar het betreffende IP-adres.
Dus, je vraagt Facebook aan. com, gaat het verzoek naar een DNS
server, die
vertaalt facebook. com naar het IP-adres waar Facebook
is opgeslagen,
en dan zal het naar het IP-adres van Facebook gaan,
het zal de pagina uitvoeren die u wilde met behulp van alle toepassingen waarover
we spraken, en u dan gewoon een kant
en klare HTML geven.
Wat je terugkrijgt is gewoon een opmaak in
HTML, een opmaaktaal, van het resultaat van de uitvoering
van het programma.
Het programma wordt uitgevoerd op de server,
en dan krijg je alleen het resultaat.
Dit is heel belangrijk, want als we in de toekomst
iets willen laten uitvoeren op de
webserver, als we een shell, een reverse shell of een virus
willen laten uitvoeren op de doelcomputer, dan
moeten we dat sturen in een taal die
de webserver begrijpt.
Bijvoorbeeld, PHP.
Zodra u het daar uitvoert, wordt het
op die computer uitgevoerd, niet op uw computer.
Ongeacht de persoon die de pagina opent, de webshell die je verstuurt,
als die geschreven is in PHP, in een
taal die de server begrijpt,
wordt hij uitgevoerd
op de server en niet op jouw computer.
Daarom geeft het je toegang tot de server,
en niet tot de persoon die toegang tot die server had.
JavaScript daarentegen, er zijn websites die JavaScript
gebruiken.
JavaScript is een client-side taal.
Als u erin slaagt een website te vinden waarop
u JavaScript-code kunt uitvoeren, dan zal de code
door de klanten worden uitgevoerd.
Ook al wordt de code in de webserver geïnjecteerd,
hij wordt uitgevoerd op de client-side
en laat je toe dingen te doen
op de client-computer en niet op de server.
Het is heel belangrijk om een onderscheid te maken tussen een
client-side taal en een server-side taal.