• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
Hacking Trick CSS Injection kaskus.usDea Cyndi rahman
2008 September 6tags: browser , coding,computer , css,hack , hacking, HTML, injection, Internet,  javascript, js,komputer ,Linux, mysql,PHP,Programming,sql,tips,trick ,Tutorial, web,  Windows by kecebongsoftSebelum saya ngebahas ini, please note that this is just a learning material, and hacking isnot a child’s play. When you broke a site, it’s not cool or smart or genius, it’s a crime.Buat saya pribadi hacking adalah proses pembelajaran (mencari bug, fixing code,optimizing) bagi si coder untuk meng-involve teknik/trik programming baru.Kali ini saya mau ngebahas gimana lubang pada application layer bisa dimanfaatkan buatngemodifikasi style CSS (Cascading Style Sheet) pada sebuah elemen yangmenggunakan tag DIV atau SPAN. Pada prakteknya nanti, kita bisa mengubah tampilansebuah elemen dengan mengubah style CSS-nya lebih dari yang diperbolehkan oleh situstersebut. Yang lebih menyeramkan lagi, kita bisa mengubah style tersebut sedemikianrupa hingga tampilan situs secara keseluruhan berubah (atau bisa disebut deface?).
Index
 
Apaan tuh injection?
Injection memiliki banyak arti. Dalam kasus ini injection bisa saya samakan denganSQLinjection, yaitu exploitasi sekuriti yang terjadi pada database layer. Tapi berhubung yangdibahas disini adalah CSS injection (yang tidak punya database layer), maka saya sebutsaja application layer. Mungkin ada yang bertanya-tanya seperti ini:Kok application layer? kan CSS berhubungan dengan tampilan, jadi harusnya presentation layer dong..Ya iya sih, masa ya iya dong.. Ups. Maksud saya, memang CSS berhubungan langsungdengan presentation layer. Tapi pada prakteknya nanti, setiap stylesheet yang masuk akandiproses dulu pada application/business layer (in this case : PHP/ASP), untuk kemudianditampilkan dalam bentuk CSS.Bentuk eksploitasinya (secara dasar) adalah dengan memanfaatkan input yang salah/tidak seharusnya dari user, dan tidak dapat difilter dengan benar oleh application layer,sehingga input tersebut tidak dapat dieksekusi, or at least dieksekusi dengan cara yangtidak seharusnya. Saat melakukan hacking, si user memanfaatkan kelemahan ini untuk menginput data yang salah, menggunakan karakter single quote dan double quote.Dengan begitu user bisa bebas menambahkan kode internal apapun yang dia inginkan.Sebagai contoh pada SQL, saya bisa memasukan query tambahan seperti Update, Delete,Truncate, Insert, dsb. Dalam CSS, user bisa menambahkan elemen lain (selain default)seperti Color, Font-Family, Font-Size, Background, Width/Height, dsb.
Contoh dasar injection
Untuk injection versi SQL, contoh kasus sederhananya adalah seperti ini : Kita punyatabel yang menyimpan daftar username dan password (tabel user_data). Pada tabeltersebut terdapat kolom user (varchar) dan pwd (varchar) yang menyimpan informasiusername dan password bagi tiap user. Anggap saja saya punya sebuah data pada tabeltersebut sebagai berikut:
user
: admin
pwd
: 123Kemudian saya ingin agar user tersebut bisa login pada halaman web yang saya punya.Maka saya gunakan kode berikut:view plain copy to clipboard print ?1.$form_user = $_POST['user'];2.$form_pwd = $_POST['pwd'];3.4.$query = "SELECT * FROM user_data WHERE user='". $form_user . "' AND pwd='". $form_pwd ."' ";5.if(mysql_query($query)){ // hanya contoh, pada prakteknya tidak seperti ini6. echo "Login success.";
 
7.}else{8. echo "Login failed.";9.}Variabel form_user dan form_pwd berasal dari form HTML dasar yang saya buatsebelumnya. Dengan begini saya sudah bisa login dengan mengisi
admin
pada kolomuser dan
123
pada kolom password. Saat saya isi dengan data login yang ada, makavariabel $query akan menghasilkan:SELECT * FROM user_data WHERE user=’admin’ AND pwd=’123′Dan login pun berhasil, query akan menghasilkan nilai true karena semua statement bisadikerjakan (karena datanya sesuai dengan yang di database). Tapi kelemahan pada kodediatas bisa dimanfaatkan untuk menyisipkan query tambahan. Sebagai contoh, jika sayalogin dengan data ini:
Username
: test’ or ’saya’=’saya
Password
: test’ or ’saya=’sayaMaka variabel $query akan menghasilkan:SELECT * FROM user_data WHERE user=’test’ or ’saya’=’saya’ AND pwd=’test’ or ’saya=’saya’Query diatas juga akan menghasilkan nilai true, karena semua statement bisa dikerjakan,meskipun datanya tidak sama dengan yang didatabase. Kenapa bisa begitu? Coba lihaturutan prosesnya sebagai berikut:$form_user = test’ or ’saya’=’saya$form_pwd = test’ or ’saya=’sayauser = ‘$form_user’user = ‘
test’ or ’saya=’saya
 pwd = ‘$form_pwd’ pwd = ‘
test’ or ’saya=’saya
query = SELECT * FROM user_data WHERE user=’test’ or ’saya’=’saya’ AND pwd=’test’ or ’saya=’saya’Dengan begini, saya bisa masuk login kehalaman web tersebut tanpa harus tahu datalogin siapapun. Saya bahkan bisa menjalankan perintah lain seperti Update, Drop,Truncate, dsb. Karena tidak ada yang error pada query diatas, hanya saja eksekusinya berjalan dengan tidak seharusnya (tidak sesuai rule aplikasi yang dibuat). Simple thought, but it’s very dangerous
CSS injection
 Nah, dari contoh SQL injection diatas, sebenarnya bisa kita aplikasikan ke tempat lain,yaitu CSS. Pernah browsing ke situs-situs yang punya form text dimana
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...