Langsung ke konten utama

Praktek Teknisi

Advanced SQL Injection



Saya rasa sampai sejauh ini, perjalanan anda untuk memahami SQL Injection terus bertambah. Saya harap sesampainya anda pada bab ini, sudah bisa memahami dan menggunakan SQL Injection. Dalam bab ini, kita akan mengulas SQL Injection. Jika dari teknik SQL Injection sebelumnya, kita berfokus untuk menemukan username dan password sebuah situs web. Lain halnya dengan Advanced SQL Injection, pada Advanced SQL Injection ini, yang kita lakukan tidak hanya mengakses database. Pada teknik ini, kita juga bisa membaca atau melihat file yang ada pada komputer target, bahkan lebih dari itukita juga bisa memasukkan file ke dalamnya.
Dalam bab ini,,  kita akan menggunakan perintah LOAD_FILE dan INTO OUTFILE.
·         LOAD FILE berguna untuk membuka isi file
·         INTO OUTFILE berfungsi untuk menulis isi file
Perintah tersebut kita masukkan pada angka error yang ditemukan sewaktu anda melakukan SQL Injection dari bab-bab terdahulu. Ingat, perintah INTO OUTFILE hanya bisa membuat sebuah file baru, tidak digunakan untuk mengubah isi file yang sudah ada.
Sekarang kita akan mencari tahu Privileges seorang user terlebih dahulu.



Informasi yang dihasilkan adalah nama user yang digunakan beserta informasi privileges. Apabila di sebelah nama user terdapat huruf ‘Y’ berarti user tersebut punya privileges file, yang artinya memiliki akses untuk melakukan Load and write sebuah file.
Melakukan pemeriksaan file_priv ini sangat penting karena jika kita punya tidak punya akses write maka kita hanya bisa membaca sebuah file, namun tidak bisa membuat file baru.
Sebagai contoh, saya membuat terlebih dahulu sebuah file dengan nama test.txt menggunakan sebuah Notepad. File tersebut saya taruh di C:.




Pada bab ini, saya tidak akan melakukan proses SQL Injection dari awal lagi. Ita gunakan saja kasus dari Bab 4 perintah untuk membaca isi sebuah file LOAD_FILE (nama_file), berikut contoh pemakaiannya:
 



Tidak hanya itu saja, perintah LOAD_FILE ini bahkan juga bisa membaca file  yang ditempatkan dalam sebuah folder. Misalnya, saya menyalin file test.txt di atas dan membuat sebuah folder baru dengan nama contoh pada C:\contoh. Maka perintah di URL-nya adalah:



Bahkan file yang terdapat dalam folder C:\Windows pun sebenarnya juga dapat dibaca.
Perlu juga anda ketahui, apabila ada masalah sewaktu anda menggunakan perintah di atas, seperti file yang anda ingin lihat tidak tampil. Kemungkinan fitur magic_quotes telah diaktifkan. Untuk mengatasi hal ini, anda harus mengubah nama file menjadi Hexa atau Decimal.
Apabila file yang ingin anda lihat berada dalam drive C: langsung, maka anda cukup mengonversi \namafile, dalam hal ini ‘\test.txt’.
Tanda kutip tunggal juga ikut anda konversi.


Sehingga perintah yang dimasukkan dalam bentuk Hexa menjadi:


Untuk membaca file dalam linx, perintah yang digunakan adalah:
LOAD_FILE(‘/etc/passwd’).
Atau menggunakan kode hexa: 0x2f6574632f706173737764.
Berikut contoh hasil pemakaian LOAD_FILE(‘/etc/passwd’).


Apabila sewaktu anda menggunakan perintah LOAD_FILE di atas, tidak menampilkan isi file, kemungkinan besar file atau direktori tersebut tidak ada, atau menggunakan nama lainnya. Dalam menampilkan file, hal yang perlu dicermati adalah ukuran file harus kurang dari max_allowed_packet. Dimana ukuran default @@max_allowed_packet adalah 1047552 bytes.
Sampai di sini anda telah bisa membaca isi sebuah file menggunakan browser. Kita akan mencoba manuver lain, dengan membuat sebuah file karya anda sendiri. Pada bagian ini barulah kita menggunakan perintah INTO OUTFILE.
Perintah yang digunakan adalah:
UNION SELECT 1,2,3,*isi file*,5,6,7 INTO OUTFILE ‘ /nama-file--         
Langsung saja pada contoh penerapannya.
 


Sewaktu anda menjalankan perintah di atas maka akan tampil halaman error seperti gambar di bawah ini.




Pada beberapa kasus, pesan error yang tampil adalah:
Warning: mysql_fetch_object() expects parameter 1 to be
Mysql_result,                       boolean                 given                in
C:\xampp\htdocs\joomla\libraries\joomla\database\mysqli.php on line 462
Baiklah, sekarang kita akan melihat hasil yang kita kerjakan di atas, dengan membuka drive C:, ternyata di dalamnya muncul sebuah file baru dengan nama ‘abc.txt’. Dan isi file tersebut bertuliskan ‘Hacking is Creativity’.


Dalam kondisi online, kita perlu tahu direktori yang digunakan untuk menyimpan file atau data. Untuk mengetahui path tersebut, bisa kita lihat dari pesan error yang tampil. Misalnya, pada pesan error di bawah ini:
Warning: mysql_num_rows(): supplied argument is not a valid
MySQL                           result                          resource                     in
/home2/abc/public_html/situswebku/functionFiles\
/filenya.php on line 69
Dari pesan error di atas di ketahui path untuk memasukkan file adalah: home2/abc/public_html/situswebku/.
Jika diperlukan, anda bisa memasukkan teks yang anda inginkan menggunakan kode hex. Misalnya, pada kasus, untuk memasukkan ‘</include($_GET”]);/>’, yang muncul hanyalah halaman kosong. Oleh karena itu, anda harus mengakali dengan kode hexa:
Ox273c3f696e636c75646528245f4745545b225d293b3f3e27.
Selain itu, untuk melakukan write kita juga harus tahu directory mana yang writable. Biasanya sebuah situs web memiliki folder /tmp, dan biasanya folder ini pasti writable. Alternatif lain adalah folder image, atau seperti daftar berikut ini:
·         /var/www/html/
·         /var/www/web1/html/
·         /var/www/sitename/htdocs/
·         /var/www/localhost/htdocs
·         /var/www/vhosts/sitename/httpdocs//etc/init.d/apache
·         /etc/init.d/apache2
·         /etc/httpd/httpd.conf
·         /etc/apache/apache.conf
·         /etc/apache/httpd.conf
·         /etc/apache2/apache2.conf
·         /etc/apache2/httpd.conf
·         /usr/local/apache2/conf/httpd.conf
·         /usr/local/apache/conf/httpd.conf
·         /opt/apache/conf/httpd.conf
·         /home/apache/httpd.conf
·         /home/apache/conf/httpd.conf
·         /etc/apache2/sites-available/default
·         /etc/apache2/vhosts.d/default_vhosts.include
·         /templates_compiled/
·         /templates_c/
·         Templates/
·         Temporary/
·         /images/
·         /cache/
·         /temp/
·         /files/
Pada dasarnya ketika anda bisa memasukkan sebuah file maka anda juga bisa memasang webshell pada situs web target. Efeknya anda bisa mengendalikan komputer orang lain hanya melalui sebuah browser. Namun, pembahasan mengenai webshell ini butuh penjelasan tersendiri, jadi tidak saya bahas di sini. Untuk Joomla, anda bisa memasang webshell dengan membaca buku Hacking Joomla.


Komentar

Postingan populer dari blog ini

Hunting Di Kota Metro

Sahabat Metro Techno Solution dikota metro kini sudah menjadi destinasi pengambilan gambar yang cukup indah dipandang mata, karena Kota Metro adalah salah satu kota di Provinsi Lampung dan Kota ini juga merupakan kota yang memiliki tingkat kemacetan dan kriminalitas paling rendah di Provinsi Lampung .  Wikipedia Ada beberapa tempat yang sahabat semua bisa kunjungi diantaranya: Taman Merdeka Kota Metro tempat ini merupakan salah satu kebanggan warga metro untuk menghabiskan akhir pekan Bersama keluarga,  teman, dan sahabat . Selain itu juga taman merdeka kota metro ini adalah tempat aktifitas olahraga dengan suasana alam yang masih asri dengan didampingi beberapa rumah dinas diantaranya walikota metro dan perkantoran pemerintah.    Keberadaan taman merdeka kota metro berada dijantung kota sehingga untuk mencapai kelokasi hanya cukup berjalan kaki saja. Samber Park  Kota Metro adalah salah satu ikon kota metro, dimana sebelumnya samber park adalah sebuah lapang...

PKL DI Metro Techno Solution

PKL DI Metro Techno Solution memberikan solusi kepada peserta yang ingin mencari pengalaman dan kesempatan untuk mengenal lebih jauh tentang DUNIA USAHA DAN INDUSTRI, selain itu juga peserta didik akan di bekali diantaranya : 1. akan di asah dan dilatih apa saja yang menjadi dasar untuk bisa bekerja sesuai dengan standar prusahaan dan kompetensi seperti apa yang di butuhkan. 2. menambahkan pengetahuan tentang bagaimana cara merawat dan maintenance perangkat hardware yang di miliki oleh tempat kerja dan cara mengatasi jika perangkat tersebut dibutuhkan secepatnya.     3. membentuk mental peserta didik untuk menghadapi resiko pekerjaan yang terkadang diluar dari target. 4. memberikan wawasan dan kreatifitas kepada peserta sehingga peserta PKL siap untuk menyelesaikan semua pekerjaan. dengan melihat persyaratan bekal diatas dapat disimpulkan bahwa siswa PKL harus diciptakan SDM handal untuk siap bersaing dengan dunia luar ataupun MEA.

KURSUS KOMPUTER DIKOTA METRO

    Kota Metro Kota Pendidikan salah satu kota di Provinsi Lampung yang memiliki fasilitas yang memadai, berbagai prestasi dibidang pendidikan, kesehatan, dan pelayanan perizinan. Kota Metro juga dikenal dengan kota pendidikan.      Terbukti dengan adanya LKP ( Lembaga Kursus dan Pelatihan ) yang didirikan oleh Bapak Adi Jaya Saputra, S. Kom, M. T. I  pada tanggal 28 Juli 2010 dan disahkan dengan pemikiran bahwa pendidikan di Kota Metro, khususnya di bidang komputer berbasis Open Source masih sangat minim sekali, padahal penggunanya masih bebas /free yang siapa saja bisa mengembangkan dan menggunakan tanpa harus membayar Software ( perangkat lunak ) sebagai alat pendukung dalam pengoperasian komputer. Inisiatif pendirian lembaga pendidikan ini juga merasa perlu untuk membentuk suatu wadah yang dapat membangun kemandirian, keahlian, kecerdasan dan aktifitas pendidikan serta terutama kemajuan dalam bidang pendidikan komputer berbasis Open Source. ...