DOM XSS in sink using source document.writelocation.search

 Hallo semuanya saya di sini ingin menyelesaikan tantangan PORTSWIGGER yang berjudul "DOM XSS in sink using source document.writelocation.search"


XSS (Cross-Site Scripting) adalah kerentanan keamanan yang memungkinkan penyerang menyuntikkan skrip jahat ke halaman web, yang kemudian dieksekusi di browser pengguna lain. Ini bisa digunakan untuk mencuri data sensitif seperti cookie atau sesi pengguna. Untuk mencegah XSS, penting untuk memvalidasi dan membersihkan input pengguna serta menggunakan Content Security Policy (CSP).


oke sekarang kita pecahkan tantangan itu, yang pertama kita akses lab untuk membuka lab yang ingin kita uji :



PORTSWIGGER memberikan kita sebuah lab yang akan kita uji, dari soal yg kita baca PORTSWIGGER memberi tau bahwa web ini memiliki kerentanan di bagian kueri pencarian :



dan saya baru membuka web yang akan kita uji, saya langsung menemukan pencarian di dalam web tersebut dan kalian juga pasti melihatnya, kalo kalian baca writeup saya yang berjudul : (REFLECTED XSS INTO HTML CONTEXT WITH NOTHING ENCODED) kerentanan ini sama dengan writeup saya sebelum nya yaitu search tidak di beri validasi input maka dari itu pada bagian search sangat rentan ,jadi saya ingin test dengan memasukan payload XSS tersebut ,sebelum itu saya akan mencari payload XSS yang berada di github :



dan aku memilih payload ini : "><svg onload=alert(1)>, pasti kalian berfikir kenapa dari sekian banyak payload di atas saya tetap memakai itu karena : Payload `"><svg onload=alert(1)>` adalah contoh serangan XSS (Cross-Site Scripting) yang mengeksploitasi kerentanan pada aplikasi web dengan menyisipkan kode berbahaya ke dalam input pengguna yang tidak disanitasi. Bagian `">` berfungsi untuk menutup tag HTML sebelumnya, memungkinkan penyerang untuk menyisipkan elemen baru. Tag `<svg>` digunakan karena banyak aplikasi yang tidak memfilter tag ini dengan ketat, sehingga bisa menjadi vektor serangan. Atribut `onload` pada elemen SVG akan memicu eksekusi JavaScript ketika elemen tersebut dimuat, sementara fungsi `alert(1)` digunakan sebagai indikator bahwa skrip berhasil dijalankan. Ketika payload ini dimasukkan ke dalam kolom pencarian atau formulir, dan aplikasi tidak membersihkan inputnya, elemen SVG akan ditampilkan saat halaman dimuat, mengeksekusi fungsi `alert(1)`. Hal ini menunjukkan bahwa penyerang dapat menjalankan kode dalam konteks pengguna yang tidak berhak, mengonfirmasi adanya kerentanan XSS. Penggunaan payload ini menekankan pentingnya sanitasi dan validasi input untuk mencegah serangan berbahaya yang dapat merugikan keamanan pengguna dan integritas aplikasi. Dan mari kita eksekusi gazzz πŸ‘Œ: 



dan yappp payload berhasil ter eksekusi oleh web dan setelah kita klik "OK" akan menuju ke halaman awal :


dan yappp, kita berhasil menyelasikan tantangan yang berada di PORTSWIGGER, dan jadi kesimpulan nya gini :

Penggunaan `document.writeln(location.search)` dalam aplikasi web rentan terhadap serangan XSS (Cross-Site Scripting), terutama dalam konteks "Lab: DOM XSS in sink using source document.writeln(location.search)". 

Aplikasi ini menjadi rentan karena beberapa alasan. Pertama, penggunaan `location.search`: Ketika aplikasi mengambil query string dari URL, ia langsung memasukkan input pengguna ke dalam DOM tanpa proses validasi atau sanitasi. Jika penyerang menambahkan payload berbahaya ke URL, skrip tersebut dapat dieksekusi tanpa halangan. 

Kedua, `document.writeln`: Metode ini menulis langsung ke dokumen HTML. Jika input yang berisi skrip berbahaya ditulis tanpa disaring, maka JavaScript tersebut dapat dijalankan. Hal ini memberi penyerang kesempatan untuk menyisipkan kode yang dapat mencuri informasi sensitif, seperti cookie atau data sesi.

Ketiga, kurangnya sanitasi input: Banyak aplikasi tidak memfilter atau membersihkan input pengguna dengan benar. Jika input tidak diperiksa, skrip jahat dapat dieksekusi dalam konteks browser pengguna, yang dapat berpotensi merusak pengalaman pengguna, mencuri data, atau mengubah tampilan aplikasi.

Keempat, eksekusi dalam konteks pengguna: Payload yang berhasil dieksekusi akan berjalan di dalam sesi pengguna yang aktif, memberikan penyerang akses ke data yang mungkin sensitif dan meningkatkan risiko serangan lebih lanjut, seperti pencurian identitas atau penipuan.

Dampak dari kerentanan ini, meskipun mungkin tidak seburuk serangan XSS yang lebih canggih, tetap dapat mengakibatkan kebocoran data yang signifikan dan merusak kepercayaan pengguna terhadap aplikasi. Ini menunjukkan pentingnya melakukan sanitasi dan validasi input yang tepat untuk melindungi aplikasi dari potensi serangan XSS yang dapat merugikan pengguna dan reputasi aplikasi secara keseluruhan.

payload xss : GitHub - payloadbox/xss-payload-list: 🎯 Cross Site Scripting ( XSS ) Vulnerability Payload List

Terimakasih 

-Khalid


Subscribe to receive free email updates:

0 Response to "DOM XSS in sink using source document.writelocation.search"

Posting Komentar