HAKATEMIA
07Injektiotekniikat

(MySQL) UPDATE-lauseiden injektoiminen

Helppo30MIN

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:

SQL
1UPDATE 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:

SQL
1UPDATE 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!

1 / 2
Hakatemia Pro

Hakkeroinnin oppiminen alkaa tästä

Sadat interaktiiviset kurssit, virtuaalilabrat ja CTF-haasteet selaimessasi. Aloita ilmainen kokeilu ilman korttitietoja.