SQL-Injektio

(MySQL) WHERE-käskyjen muuttaminen tunnistautumisen ohittamiseksi (tietty käyttäjä)

Helppo
30 min

Viime moduulissa opimme, kuinka ohjelmointivirhe voi johtaa siihen että hyökkääjä pääsee muokkaamaan sovelluksen tekemien SQL-kyselyiden rakennetta.

Teimme harjoituksen, jossa ohitimme kirjautumisen pakottamalla tietokanta palauttamaan kaikki käyttäjärivit salasanasta riippumatta, jolloin sovellus kirjasi meidät sisään ensimmäisenä käyttäjänä, joka sattui olemaan järjestelmänvalvoja.

Mutta mitä, jos haluammekin kirjautua eri käyttäjänä? Tällöin meidän täytyy lisätä kyselyn WHERE-lausekkeeseen ehtoja, jotka ohjeistavat tietokannan palauttamaan jokaisen käyttäjän sijasta vain halutun käyttäjän.

Jos tietäisimme järjestelmänvalvojan sähköpostiosoitteen, voisimme lähestyä ongelmaa esimerkiksi injektoimalla ' OR email='admin@ha-target.com'-- jolloin muodostuisi SQL:

SELECT * FROM user WHERE email='diibadaabaduu@ha-target.com' AND password='foo' OR email='admin@ha-target.com'-- '

Emme kuitenkaan tiedä järjestelmänvalvojan sähköpostiosoitetta. Sen sijaan tiedämme, että tietokannassa on sarake nimeltä admin joka on boolean muotoinen, eli sen arvo on True (tosi) tai False (epätosi).

Meidän pitäisi siis pystyä kirjautumaan järjestelmänvalvojana sisään, kunhan varmistamme että kysely palauttaa vain sellaiset rivit joiden admin-sarakkeen arvo on True. Kokeile alla olevaa harjoitusta, ja yritä saada sovellus ajamaan tämänkaltainen kysely.

SELECT * FROM user WHERE email='foo@ha-target.com' AND password='foo' OR admin=True-- '

MySQLi Kirjautumisen Ohitus 2

Tässä labrassa sukellamme hieman syvemmälle SQL-syntaksiin tutustuen WHERE-lausekkeen ehtoihin tavoitteenamme kirjautua ensimmäisen käyttäjän sijasta juuri tiettynä henkilönä sisään.

Tavoite

Kirjaudu sisään käyttäjänä jonka admin-sarakkeen arvo on True.

Tehtävät

Flag

Löydä lippu (flag) labraympäristöstä ja syötä se alle.

hakatemia pro

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ä.