Asas SQLi - Tutorial S2



Untuk intro, janjang harap korang dapat paham sedikit sebanyak macam mane nak tau laman sesawang itu boleh di suntik atau tidak pada siri 1 yang lepas. Untuk siri dua ini, janjang fokus pula cara macam mana nak cari column yang boleh diceroboh pada database untuk dapatkan maklumat setelah kita tahu yang laman tersebut boleh disuntik.

Kali ini, seperti yang dijanjikan kita boleh try pada live website. Harap takde orang yang akan deface laman ni. Untuk kebaikan bersama.

Janjang tau ramai yang tak sabar, jom kita mulakan siri dua ni... Jeng jeng jeng...

Mendapatkan Data

- Dibahagian ini akan diterangkan secara lalu bagaimana mendapatkan Data melalui query ( suntikan / injection ). Sila pahamkan konsep ini.

- Setelah kita mendapati sesuatu laman mempunyai kelemahan untuk sql injection , anda perlu mendapatkan maklumat jumlah table dan column bagi sesuatu database sebelum data dapat diperolehi daripadanya.

- Dengan menggunakan arahan ORDER BY akan memberikan maklumat tersebut.

- Anda harus meneka jumlah column dengan perhatikan error yang muncul. Jika belum keluar error maka jumlah column masih perlu ditambah, dan kalau keluar error pula sebaliknya.
- Contohnya :
http://www.contoh.my/index.php?id=1+ORDER+BY+1--
http://www.contoh.my/index.php?id=1+ORDER+BY+2--
http://www.contoh.my/index.php?id=1+ORDER+BY+3--
http://www.contoh.my/index.php?id=1+ORDER+BY+4-- <--Ada error
- Jadi , jumlah column ialah 3


OK, itu penerangan secara ringkas mengenai konsep dan apa yang akan dilakukan pada siri kedua ini. Mari kita mulakan penerangan seterusnya secara lanjut macam mana ia dilakukan.

Mencari laman untuk di suntik.

Mencari laman yang mudah terdedah kepada SQLi ini sangat mudah, apa yang kita perlukan hanya lah enjin pencari google. Perkara pertama yang kita perlukan adalah mencari menggunakan dork. Disini janjang kongsi senarai dork yang janjang ada.(korang boleh jugak cari sendiri. Rasanya mana2 pon sama, hanya perlu ubah sedikit. Tak pon kongsi jer dork yang korang ada kat ruang komen)
Download senarai SQLI dork disini : http://www.mediafire.com

(p@ssw0rd = nama blog ni. Takde dot kom)
Ambil salah satu dork, dan letakkan inurl: pada awalan dork (kalau takde pada dork tu) kemudian copy dan paste kedalam google. Selepas enter, pilih salah mane2 laman yang diberi oleh google, kemudian klik padanya sebagai pilihan sasaran.
Sebagai contoh, url pilihan kita akan kelihatan seperti ini:
http://www.leadacidbatteryinfo.org/newsdetail.php?id=10
Untuk memastikan yang laman sasaran kita pilih mudah diserang, apa yang kita perlu buat ialah tambah tanda penyingkat atau apostrophe ( ‘ ) diakhir url.
Jadi, url kita akan kelihatan seperti ini:
http://www.leadacidbatteryinfo.org/newsdetail.php?id=10'
Kemudian tekan enter dan kita akan dapati ia akan mengeluarkan mesej error. Jenis atau mesej error yang keluar tak tentu dan pelbagai.
Laman sasaran akan kelihatan macam ni:
Ini permakna kita dah jumpa laman sasaran yang boleh disuntik. OK lepas tu apa yang perlu kita buat pula ialah untuk dapatkan bilangan column yang ada pada database pada page yang digunakan. Cara yang paling mudah ialah dengan menggunakan perintah ORDER BY diikuti dengan nombor column dan ditambah tanda tolak sebanyak dua kali (--) selepas nombor tadi.
url kita akan kelihatan seperti ini:
http://www.leadacidbatteryinfo.org/newsdetail.php?id=10 order by 15--
Jika kita dapat mesej error maknenyer kita kena turunkan bilangan nombor column tadi.
Cuba pula 10:
http://www.leadacidbatteryinfo.org/newsdetail.php?id=10 order by 10--
Laman terbuka secara normal, maknanya column nombor 10 wujud. Jadi, itu bermakna bilangan column adalah diantara 11 dan14.
Sekarang kita cuba 11 pulak:
http://www.leadacidbatteryinfo.org/newsdetail.php?id=10 order by 11--
Hm.. nampaknya sama juga,laman dibuka secara normal...
Kita cuba pulak 12, harap2 ade mesej error lah, dah panjang sangat pulak nanti tutor ni:
http://www.leadacidbatteryinfo.org/newsdetail.php?id=10 order by 12--
Aha, kita dapat mesej error. Ini bermakna bilanga column adalah 11. Kenapa? Sebab pada 12 kita dapat mesej error tapi pada 11 ia normal, tiada mesej error. Bermakna column 12 tidak wujud.

Ok, tamat sudah siri 2. Kalau nak diikutkan nak je gabung sekali dengan siri 3 sebab siri 3 ni pendek jer, tapi saja nak bagi korang meleleh air lur jer hehe.

Harap korang dah paham konsep dan cara macam mane nak dapatkan bilangan column ni. Kenapa kita kena dapatkan bilangan column ni? Sebab dari bilangan ini lah kita akan dapat column mana yang mudah di ceroboh, lagi banyak column, lagi panjang kita perlu taip pada url untuk mengetahui column mana yang bertuah untuk diceroboh tu. Nak tau macam mana? Tunggu siri tiga nanti.
Powered by Blogger.