Cara menggunakan htmlentities xss
XSS adalah suatu cara memasukan code/script HTML kedalam suatu web site dan dijalankan melalui browser di client (echo.or.id). Kepanjangan XSS adalah Cross Site Scripting, lho kenapa Cross disingkat jadi X?, jawabannya adalah karena singkatan
CSS sudah dipakai oleh Cascading Style Sheet. Search engine yang saya maksudkan bukanlah Google, Yahoo, dll, tapi search engine buatan sendiri yang biasa digunakan untuk mencari informasi pada suatu website. Cara
mengetahui adanya bugs ini adalah dengan memasukkan tag HTML ke search box, misalnya Cara Pencegahan Bugs ini terjadi karena kesalahan programmer yang tidak melakukan filter terhadap apa yang diketikkan user saat menasukkan input. Akibatnya user bisa dengan mudah menyisipkan berbagai kode ke search box tersebut. Ternyata tidak tag HTML saja yang bisa disisipkan ke search box, Javascript dan Client Side Programming lainnya pun bisa apabila browser memang mendukung. Cara mencegahnya adalah dengan menghapus atau mengganti tag HTML yang di inputkan oleh user. Filter Menggunakan PHP PHP mempunyai beberapa fungsi yang bermanfaat untuk men-filter input dari user. Kedua fungsi terstbu mempunyai kegunaan yang berbeda, strip_tags() berfungsi untuk menghapus tag HTML sedangkan htmlentities() untuk mengganti tag HTML dengan HTML Entities. Berikut ini contoh source codenya Test'; echo 'Filter menggunakan strip_tags() : '; echo strip_tags($str); echo ' Output dari kode diatas Filter menggunakan strip_tags() : Test Filter menggunakan htmlentities() : TestBisa dilihat dari output diatas bahwa fungsi strip_tags() digunakan untuk menghilangkan tag HTML dan htmlentities() digunakan untuk mengganti tag HTML menjadi HTML Entities. 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/ PrerequisitePada 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 : databasexssFile 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. 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 XSSLakukan modifikasi pada url dengan menambahkan garis miring/italic pada link pencariannya. ../xss/search.php?q=kamjar 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 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.
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 XSSSelain 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] |