SQL-Injektio

(MySQL) UPDATE-lauseiden injektoiminen

Helppo
30 min

Tässä moduulissa tutustumme UPDATE-lausekkeeseen ja SQL-injektioihin, jotka osuvat sellaisen sisälle!

UPDATE-lauseke

Siinä missä SELECT-lausekkeella haetaan rivejä tietokannasta ja INSERT-lausekkeella lisätään niitä, UPDATE-lauseke muuttaa riviä tai rivejä jotka on jo aiemmin INSERT-lausekkeella lisätty tietokantaan.

UPDATE-lausekkeen muoto on seuraavanlainen:

UPDATE taulu SET sarake=arvo mahdollisesti_toinen_sarake=toinen_arvo WHERE ehdot

Eli jos halutaan vaikka päivittää kaikkien autojen, joiden merkki on Ferrari, hinnaksi 50000, voitaisiin ajaa seuraavanlainen kysely:

UPDATE autot SET hinta=50000 WHERE merkki='Ferrari'

UPDATE-lausekkeen injektoinnissa voi käyttää samaa alikyselytekniikkaa kuin INSERT-lausekkeissakin. Otetaan kuitenkin vaihtelun vuoksi toisenlainen lähestymistapa; yritetään admin-käyttäjän salasanan selvittämisen sijasta tehdä meistä itsestämme admin-käyttäjä.

Avaa harjoitustehtävä ja mene käyttäjätilisivulle (account) ja päivitä tietosi. Koita sitten löytää haavoittuvuus ja päivittää tietosi niin, että saat admin-kentän arvoksi asetettua True. Varo kuitenkin ettet hukkaa WHERE-lausekkeen id-rajausta, muuten saatat vahingossa päivittää omat tietosi jokaiselle käyttäjälle!

MySQLi - UPDATE ja Ylennys Järjestelmänvalvojaksi

Tässä labrassa tutustut UPDATE-lausekkeeseen ja koitat injektoida kyselyyn ylimääräisen kentän.

Tavoite

Tee itsestäsi järjestelmänvalvoja.

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