Sesuai dengan namanya Cross Site Scripting yang berasal dari kata Cross berarti silang / menyilang, Site berarti tempat(halaman website), Scripting berarti pengkodean / penulisan kode dari sini kita dapat mendefinisikan bahwa Cross Site Scripting atau yang lebih dikenal dengan XSS berarti penyilangan suatu kode pada halaman website. Tidak hanya sebatas itu, definisi dari XSS sendiri bisa bermacam-macam sesuai dengan tingkat pemahaman mengenai XSS. Tetapi sebenarnya XSS ini macro dari suatu teknik Injection yang ada. Oleh sebab itu, jika dilihat dari efek yang ditimbulkan Cross sendiri bisa berarti pembelokan(berfokus pada arah) sehingga XSS bisa diartikan penulisan kode pada sebuah halaman website agar berbelok ke target yang di inginkan. Kasus pembelokan ini lebih dikenal dengan deface yang dalam arti sebenarnya adalah mengotori / menodai / merusakkan. Pada intinya Cross Site Scripting – XSS memanfaatkan vulnerability yang ada.Maka dari itu sebelum anda melanjutkan pembacaan artikel ini, saya berpesan jangan terlalu berfokus pada definisi yang banyak ragamnya tetapi berfokuslah pada pemahaman anda sendiri. Dan satu hal lagi artikel ini saya khususkan untuk para newbie (meskipun saya sebenarnya masih newbie abis) tetapi boleh juga kok jika para master mau membaca artikel, mungkin ada yang lupa hehehe. O iya untuk yang sudah master mohon saran dan pencerahannya jika ada tulisan-tulisan saya yang salah.
Dimana Cross Site Scripting – XSS bekerja? Cross Site Scripting – XSS bekerja pada sisi client. Meskipun XSS ini bekerja pada sisi client tetapi efek yang dihasilkan akan memaksa server untuk menjalankan kode yang di masukkan. Nah anda bisa membayangkan sendiri bagaimana jika server menjalankan perintah kita… kwekekekeke…
Bagaimana Cross Site Scripting – XSS ini bekerja? Cross Site Scripting – XSS bisa bekerja melalui banyak cara. Kenapa saya menyebut kata banyak, karena semua itu tergantung dari kreativitas pribadi. Seperti yang saya ketahui XSS bisa berjalan melalui 3 cara:
- Pemanfaatan Tools
- Penulisan pada source code
- Penulisan pada URL
- Pemanfaatan tools : seperti yang anda ketahui bahwa tools di dunia ini sangat banyak sekali, beberapa yang pernah saya gunakan adalah Live HTTP Headers dan Achilles. Kedua tools tersebut bekerja dengan cara yang hampir sama yaitu melakukan perubahan – perubahan terhadap variabel yang dikirimkan. Mungkin yang sudah pernah melakukan ini berpikir “Loh inikan …bla bla bla…”. Jika anda ingin menggunakan metode ini saya sarankan untuk menggunakan browser Mozilla dengan alasan Live HTTP Headers merupakan plugins Mozilla dan Mozilla bekerja lebih cepat dari yang lain jika menggunakan Achilles.
- Penulisan pada source code : pada metode ini script atau kode yang ingin dijalankan ditulis pada source code yang muncul. Untuk menerapkan metode ini saya sarankan menggunakan browser Opera, karena Opera bisa langsung melakukan Reload terhadap source code sehingga server akan menganggap source code yang kita ubah sebagai source code aslinya dan document.referrer yang tampak adalah document.referrer aslinya. Atau dengan kata lain browser Opera bisa di gunakan untuk menghindari pengecekan document.referrer oleh server.
- Penulisan pada URL : pada metode ini script atau kode di tuliskan melalui URL.
Script atau bahasa pemrograman apa saja yang bisa digunakan? script yang bisa digunakan sangat beragam, hal ini kembali lagi kepada kemampuan anda. Sampai yang saya ketahui saat ini, berdasarkan pengalaman dan artikel-artikel yang pernah saya baca ada beberapa bahasa yang bisa di gunakan untuk Cross Site Scripting atau sebut sajalah untuk Injeksi, yaitu: CSS, HTML, Javascript, VBScript, Flash, SQL, dll. “Loh kok CSS dan SQl juga masuk?” hehehe sabar….
- CSS : jika kita menggunakan jasa blogger tentunya kita akan melakukan editing pada tampailannya agar sesuai dengan yang kita harapkan. Jika kita hanya melakukan edit terhadap layout/tampilan saja seperti warna latar / background, dan lain sebagainya tidak akan menjadi masalah, tetapi jika dalam CSS tersebut kita masukkan code yang akan mengakses file lain yang berisi kode-kode tertentu ya tahu sendirilah efek yang dihasilkan dan tentunya kembali lagi ke kode yang terdapat pada file target tersebut….
- HTML : dengan menggunakan HTML berarti kita memasukkan / menuliskan tag HTML seperti halnya tag script, iframe, div, dll. Kasus ini sudah saya pratekkan sendiri yang sampai sekarang masih berjalan. Jika anda ingin melihat contoh efeknya silahkan kunjungi FS (friendster) saya jhal_prolinx@yahoo.com. “Jangan-jangan nanti cookie saya di curi?” santai saja ga kok, di FS saya cuma untuk menampilkan halaman blogger saja. Eleh… kok malah nglantur. Tag yang saya gunakan adalah div dan iframe yang ditulis dengan menggunakan kode Hexa. “Tapi sekarang kok tidak bisa ya???” Itu sebabnya saya salut sama si admin tuh FS karena ga sampai 1 minggu script berjalan, proses filteringnya udah ditambahin. kwekekee. O ya sekedar inputan dari saya, FS banyak memberikan kita kesempatan untuk mencoba teknik injeksi HTML. Pengen tahu? cari aja sendiri banyak kok…
- Javascript : nah ini dia… anda tahu sendiri kalau Javascript merupakan salah satu bahasa pemrograman dan apa saja yang bisa dilakukan oleh si Javascript. Dengan javascript kita bisa membuat Cookie, membuat / mengakses database, atau bahkan sebaliknya hehehe… Oya dengan javascript kita juga bisa mengirim atau bahkan membuat virus lho… Tapi saya sendiri masih belum tahu bagaimana caranya… “Tapi kenapa ditulis tentang virus seh???” hehehe sengaja saya tulis karena beberapa hari yang lalu ada file javascript (*.js) yang terdeteksi sebagai virus daripada komputer kerja ke serang virus jadi aku blok aja. Atau mungkin sudah ada yang bisa kasih tahu dong… Tukeran ilmu coy… XSS dengan javascript ini sering juga disebut dengan istilah Javascript Injection. Mungkin ada yang belum tahu mengenai Javascript Injection padahal hal ini jauh lebih dulu ada sebelum SQL Injection muncul tapi kenapa gak populer ya padahal Java-Injek bisa lebih berbahaya karena dia kan bisa jalan di sisi client?.
- VBScript : nah kalo yang satu ini jujur saja saya belum mempelajari dan sering ga masuk waktu kuliah bahasa pemrograman VB jadi yah bagaimanapun juga saya ga suka dan karena saya lebih senang sama si C. Tapi si VBScript neh sudah pasti banyak virus yang ditulis dengan bahasa ini.
- Flash : kenapa Flash? Ya!! karena dengan menggunakan flash kita bisa menuju lokasi lain atau anggaplah melompat ke URl lain. “Kok bisa?? Bukankah flash cuma animasi??” Bagaimana kalau loopingnya kita arahkan ke URL?
- SQL : anda-anda semua pasti sering mendengar SQL Injection daripada si Java-Injek. Mungkin anda bertanya kenapa SQL Injection bisa masuk kategori Cross Site Scripting? Kembali ke pemahaman dasar bukankah SQL Injection memanfaatkan vulner sebuah website dan memaksakan potongan kode agar di eksekusi oleh server… nah karena itulah SQL Injection juga masuk kategori XSS. SQL Injection berarti kita memasukkan potongan kode SQL agar dieksekusi oleh server yang pada intinya bagaimana agar si server selalu menghasilkan nilai benar saat melakukan prosesnya.
Kalau anda rasa artikel ini sudah usang dan kurang karena tidak disertai contoh-contohnya, mungkin pada kesempatan lain saya akan membahas satu persatu dan tentunya kalo saya sendiri sudah memahami masing-masing bahasan.
Saya tidak bertanggung jawab jika ada yang mempraktekkan Cross Site Scripting untuk tujuan merusak. Artikel ini sepenuhnya saya tulis dengan tujuan agar para calon webmaster bisa menghindari dan menangani vulner-vulner yang muncul pada websitenya.
Saran dari saya untuk mengurangi terjadinya Injection-Injection yang ada adalah:
- Hindari input-input yang memungkinkan client untuk menyisipkan karakter dan tag html.
- Selalu cek / koreksi input dari client apakah input tersebut sudah benar berupa huruf cetak dan angka saja?
- Gunakan document.referrer untuk mengecek keaslian data atau source code.
- Hindari metode pengiriman GET, jadi gunakan selalu metode POST.
- Jika anda menggunakan PHP, set Register Global menjadi Off. Hindari penggunaan cookie untuk validasi. Gunakan session yang hanya bekerja pada sisi server. Dan setting php.ini untuk membatasi function-function apa saja yang bisa diakses. Atau dengan kata lain blok penggunaan function-function yang dianggap rawan.
- Jika website anda menyediakan suatu database, selalu gunakan Store Procedure untuk melakukan semua aktivitas yang berhubungan dengan database.
Semoga artikel ini bermanfaat buat anda semua.
Source : http://jhalprob.wordpress.com
0 komentar:
Posting Komentar