Javascript Injection

chmood


Javascript, sebuah bahasa scripting client side, yang mana hanya bekerja pada browser client yang mensupport javascript. Misal opera, firefox, dan hampir semua web browser yang ada, kecuali cli-based-web-browser (nc, wget, lynx, dll).

what is javascript injection?

"teknik lama yang terlupakan.."

menginjeksi (manipulasi/poisoning) object pada aplikasi web. karena "javascript", maka yang bisa di injeksi adalah tentu saja hanya pada client side. manipulasi value sebuah input, menambahkan input, menghilangkan input, dll. Kita bisa memanipulasi semua object pada browser dengan javascript injection.

memanipulasi object pada browser? apa untungnya dalam hacking?
banyak bro. dan saya sendiri sering menginjeksi website dengan teknik ini, dan sering juga masuk ke panel admin dengan javascript injection. lihat kasus unesa dan unair, yang mana saya tidak bisa mendecrypt password admin yang sudah saya dapatkan, namun berkah dari Tuhan, saya bisa masuk ke panel admin tanpa decrypt password dahulu, dan saya menggunakan teknik javascript injection.

yang sering bermain dengan ajax, saya kira sudah sering bermain dengan browser object, dan akan mudah mempelajari teknik ini. teknik ini hampir sama dengan teknik xss.

basic tekniknya adalah seperti ini:


javascript:void([COMMAND-COMMAND-DISINI]);



void bisa di ganti alert jika ingin memberi pesan pada messagebox.



command-command adalah command javascript. misal:


javascript:void(document.write('XSn1p'));


dimana perintah tersebut di jalankan? di ADDRESS BAR WEB BROWSER. note: firefox yang baru sudah di block serangan seperti ini, cobalah menggunakan opera.


contoh simple, seorang admin membuat autentikasi admin di cookie seperti ini:

LoggedIn=0

0 <--- jelas berarti false (belom login)

kita harus merubah value tersebut menjadi 1 (logged in). caranya cukup mudah.

pertama, kita harus lihat dulu di cookies ada apa aja. sebagaimana kita ketahui, untuk membaca informasi di cookies, kita bisa write ke document, atau alert.


javascript:void(document.write(document.cookie));
atau
javascript:alert(document.cookie);



misal outputnya seperti ini:



PHPSESSID=c03e3ad3107f06ebb16778d3ad52744a&LoggedIn=0



nah, kita tahu bahwa LoggedIn=0. maka kita tinggal merubahnya menjadi 1.


javascript:void(document.cookie="LoggedIn=1");



perlu diperhatikan, bahwa setelah command tersebut, tidak akan terjadi efek apa2 yang terlihat. untuk melihat perubahan, baca kembali cookie browser. pastikan LoggedIn=1.

setelah oke, kita tinggal refresh browser, dan beres.

cukup mudah kan? contoh tersebut adalah salah satu contoh dalam manipulasi cookie client.

---
pada kasus form

untuk membaca value dari sebuah input, misal hidden input, input box, dll, cukup alert atau void. rekomendasi sih alert, karena tidak akan merubah value.

contoh form


<form name="form_abc" action="">
<input type=hidden name=local value=0 />
<input type=text name=user value=demit />
</form>




javascript:alert(document.form_abc.local.value);



ingat, javascript mengenali object secara default berdasarkan nama. sehingga kita harus membacanya urut dari yang paling atas, yaitu document, baru turun ke child dibawahnya, yaitu form_abc, kemudian baru bisa mengakses input hidden bernama local.

untuk memanipulasinya


javascript:alert(document.form_abc.local.value='xcSn1p-inside');




kalau kita ingin menambahkan input pada form tersebut, kita bisa gunakan appendChild.
variable juga termasuk object dalam javascript.



var a = 'aku';
var b = 'bokap';
var c = 'cica';



untuk mendapatkan value variable tersebut, sangat simple:



javascript:alert(a);


memanipulasinya? sama, simple juga


javascript:void(a='alamak....');


cukup mudah kan..?


berita buruk, saya tidak akan membahas bagaimana manipulasi semua object. karena banyak sekali object pada browser client, kita harus rajin-rajin googling untuk tahu bagaimana memanipulasinya. Misal untuk menambahkan option pada selectbox, auto submit, disabled enabled, dll.




sekian tutorial sederhana ini, semoga berguna.

Komentar