27
2.3.1-rasm SQL in’eksiya so‘rovi
Ushbu kiritish maydonlari SQL Injection uchun zaifdir. Buzg‘unchi ma’lumotlar
bazasi serveri tomonidan bajarilgan SQL bayonotini о‘zgartiradigan tarzda kiritishdagi
SQL buyruqlaridan foydalanishi mumkin. Masalan, ular bitta tirnoqni о‘z
ichiga olgan
hiyla ishlatishlari va passwd maydonini quyidagicha о‘rnatishlari mumkin:
password’ OR 1=1
Natijada ma’lumotlar bazasi serveri quyidagi SQL sо‘rovini ishga tushiradi:
SELECT id FROM users WHERE username=‘username’ AND password=‘password’
OR 1=1’;
OR 1=1 ifodasi tufayli WHERE bandi foydalanuvchi nomi va parol qanday
bо‘lishidan qat’i nazar, foydalanuvchilar jadvalidagi birinchi identifikatorni qaytaradi.
Ma’lumotlar bazasidagi birinchi foydalanuvchi identifikatori kо‘pincha
administrator
hisoblanadi. Shunday qilib, tajovuzkor nafaqat autentifikatsiyani chetlab о‘tadi,
balki
administrator imtiyozlariga ham ega bо‘ladi. Shuningdek, ular SQL sо‘rovining
bajarilishini nazorat qilish uchun SQL bayonotining qolgan qismini sharhlashlari mumkin:
-- MySQL, MSSQL, Oracle, PostgreSQL, SQLite
‘ OR ‘1’=‘1’ --
‘ OR ‘1’=‘1’ /*
-- MySQL
‘ OR ‘1’=‘1’ #
-- Access (using null characters)
28
‘ OR ‘1’=‘1’ %00
‘
OR ‘1’=‘1’ %16
Ittifoqqa asoslangan SQL in’ektsiyasiga
SQL Injection ning eng keng tarqalgan turlaridan
biri UNION operatoridan
foydalanadi. Bu tajovuzkorga ikki yoki undan ortiq SELECT bayonotlarining natijalarini
bitta natijaga birlashtirish imkonini beradi. Texnika birlashmaga asoslangan SQL Injection
deb ataladi.
Quyida ushbu texnikaning namunasi keltirilgan. U Acunetix tomonidan
joylashtirilgan testphp.vulnweb.com
veb-sahifasidan, qasddan zaif veb-saytdan
foydalanadi.
Quyidagi HTTP sо‘rovi qonuniy foydalanuvchi yuboradigan oddiy sо‘rovdir:
GET http://testphp.vulnweb.com/artists.php?artist=1 HTTP/1.1
Host: testphp.vulnweb.com