25 September 2018

Tutorial Hack Web Server Menggunakan Metode Cross Site Scripting Stored



Tutorial Hack Web Server Menggunakan Metode Cross Site Scripting Stored

by Aldi Pratama


Cross Site Scripting adalah salah satu jenis serangan injeksi kode ke dalam Web Server, Cross Site Scripting dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya.
Type Cross Site Scripting :

·         Reflected
·         Stored
Reflected :
Reflected XSS merupakan tipe XSS yang paling umum dan yang paling mudah dilakukan oleh penyerang. Penyerang menggunakan social engineering agar tautan dengan kode berbahaya ini diklik oleh pengguna. Dengan cara ini penyerang bisa mendapatkan cookie pengguna yang bisa digunakan selanjutnya untuk membajak session pengguna.
Mekanisme pertahanan menghadapi serangan ini adalah dengan melakukan validasi input sebelum menampilkan data apapun yang di-generate oleh pengguna. Jangan percayai apapun data yang dikirim oleh pengguna.
Stored :
Stored XSS lebih jarang ditemui dan dampak serangannya lebih besar. Sebuah serangan stored XSS dapat berakibat pada seluruh pengguna. Stored XSS terjadi saat pengguna diizinkan untuk memasukkan data yang akan ditampilkan kembali. Contohnya adalah pada message board, buku tamu, dll. Penyerang memasukkan kode HTML atau client script code lainnya pada posting mereka.
Serangan ini lebih menakutkan. Mekanisme pertahanannya sama dengan reflected XSS: jika pengguna diizinkan untuk memasukkan data, lakukan validasi sebelum disimpan pada aplikasi.
Nah untuk kesempatan kali ini saya akan memberikan caranya untuk melakukan Cross Site Scripting dengan menggunakan metode Stored, pertama kita siapkan Web Server yang saya gunakan untuk pantest ini saya menggunakan Web DVWA Vulnerability, langsung saja saya berikan contohnya di bawah ini :
1.    Setelah WebVulnerability telah siap untuk di akses kita akses menggunakan web browser dan ketikan Ip Address Web Server. Setelah itu klik tab XSS Stored, dan ada sebuah inputan untuk mengisi Name dan Massage
·         Name              :           Test 1
·         Massage         :           <sCrIpT>alert(“Test XSS”);</sCrIpT>
Setelah itu Klick Sign Guestbook untuk execute script tersebut

Dan efek dari Script tersebut akan seperti gambar di bawah ini


Setelah itu kita coba menggunakan Script Iframe untuk di inject di web tersebut dan akan menampilkan efek attack yang berbeda, metodenya sama seperti yang pertama hanya script-nya saja yang berbeda

·         Name              : test 2

·         Message         : <iframe src="https://alpratamanetwork.blogspot.co.id"></iframe>


     Dan efeknya akan muncul sebuah web lain yang telah di input links di dalam script iframe tersebut

1.    Berikut saya akan contohkan lagi script lain yang berbeda untuk script ini akan merubah keseluruhan tampilan web yang di attack
·         Name              : test3
·         Message         : <div style="position:fixed;top:0;left:0;width:100%;height:100%;background-color:green;z-index:9999;" onmouseover="prompt(document.domain)"/>
1.    Dan efeknya akan seperti gambar berikut, jika kalian seorang programer kalian bisa memodifikasi lagi script tersebut dengan script yang lain agar tampilannya bisa berbeda atau memasukan gambar menjadi gambar anonymous mungkin sekian tutorial dari saya untuk pantest menggunakan cross site scripting stored

Recomendasi untuk mengatasi masalah untuk serangan ini :

Hal ini diperlukan untuk meningkatkan validasi input pengguna dalam parameter rentan, dengan menolak karakter yang tidak diinginkan di bidang input (misalnya 5 karakter XML yang signifikan: <> & "'), atau menyandikannya sebelum mengembalikannya ke halaman. Ada beberapa skema encoding yang dapat digunakan tergantung di mana konten pengguna dimasukkan, tetapi skema pengodean keluaran entitas HTML paling dasar adalah:
<          →        & lt;
>          →        & gt;
&          →        & amp;
"           →        & # 034;
'           →        & # 039;
Sebagai contoh, dengan enkode yang diterapkan dengan benar, input pengguna <script> </ script> harus dikodekan sebelum rendering ke halaman sebagai & lt; script & gt; & lt; / script & gt; atau jika karakter khusus dihapus dari input pengguna, itu akan dikembalikan ke halaman sebagai skrip / skrip.
Diperlukan juga penggunaan strategi pemfilteran masukan yang positif ("penerimaan dikenal baik"), yaitu, gunakan daftar putih input yang dapat diterima yang benar-benar sesuai dengan spesifikasi yang ditentukan misalnya. panjang minimum dan maksimum, dan jenis parameter sintaks / data yang benar (misalnya hanya menerima nilai numerik dengan panjang dari 1 hingga 11 karakter) dan menolak masukan apa pun yang tidak benar-benar sesuai dengan spesifikasi, atau secara opsional mengubahnya menjadi sesuatu yang memiliki. Pengembang aplikasi harus dapat menentukan pola validasi yang sangat kuat - biasanya berdasarkan ekspresi reguler - untuk memvalidasi data masukan yang terstruktur dengan baik, seperti tanggal, nomor akun, kode pos, alamat email, dll.
Jangan hanya mengandalkan validasi masukan daftar hitam. Blacklist juga dapat berguna untuk mendeteksi serangan potensial atau menentukan masukan mana yang sangat salah sehingga mereka harus ditolak mentah-mentah, tetapi pencegahan XSS tidak boleh hanya mengandalkan mencari masukan jahat atau salah bentuk.


Referensi Links :
https://id.wikipedia.org/wiki/XSS