Luottokorttinumeroita!
SQL:ää käytetään käyttäjien tunnistamisen lisäksi moneen muuhunkin asiaan, joista yksi on pääsynhallinta.
Jos vaikka ollaan tunnistettu että käyttäjä on Masa, ja Masa menee verkkopankissa sivulle "Luottokorttisi", miten sivu osaa näyttää juuri Masan luottokortit, eikä vaikkapa naapurin Veeran, jolla on myös tili samassa pankissa?
Yleensä vastaus on, että tietokannassa olevat luottokortit on yhdistetty tiettyyn käyttäjään jonkinlaisen id-kentän avulla, ja sovellus hakee sitten koodissaan sivustolla näytettäväksi vain kortit joiden tunniste (user_id, tms) vastaa kirjautuneen käyttäjän tunnistetta.
Voit kokeilla tätä selaimessa. Tässä on kysely joka palauttaa ihan kaikki luottokortit:
Ja tässä on kysely joka palauttaa vain käyttäjän numero 1 luottokortit.
Mutta mitä jos hyökkäjä pääseekin injektoimaan SQL:ää WHERE-lausekkeen perään?
Lisäämällä WHERE-lausekkeen perään ehdon joka palauttaa myös jokaisen rivin jonka kohdalla 1 on 1, palautuukin tietokannasta jokainen rivi.
Tämän moduulin labrassa on juuri tällainen tilanne. Sovellus antaa käyttäjän suodattaa omia luottokorttejaan kortin numeron perusteella, käyttäen LIKE-lauseketta.
Keksitkö mitä voisit lisätä LIKE-ehdon sisään yllä olevassa kyselyssä jotta saat sovelluksen palauttamaan kaikki kortit? Kun keksit, avaa labra ja mene "Credit Cards" (luottokortit) sivulle, ja koita saada kaikkien pankin asiakkaiden luottokortit ulos.
MySQLi - Suuri korttiryöstö
Tässä labrassa tutustut LIKE-lausekkeeseen ja ohitat sovelluksen pääsynhallintakontrollit injektoimalla SQL-kyselyn WHERE-lausekkeeseen ehdon jolla saat sovelluksen palauttamaan kaikkien verkkopankin asiakkaiden luottokorttitiedot.
Tavoite
Varasta kaikkien verkkopankin asiakkaiden luottokorttitiedot.
Tehtävät
Flag
Löydä lippu (flag) labraympäristöstä ja syötä se alle.
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ä.