This SOC-mas was packed with exploits and hacking,
Today's threat - an app, which allows Wares' car tracking.
Mayor Malware, no doubt, well that's their suspicion!
For Glitch and McSkidy, the proof was their mission.
This SOC-mas was packed with exploits and hacking,
Today's threat - an app, which allows Wares' car tracking.
Mayor Malware, no doubt, well that's their suspicion!
For Glitch and McSkidy, the proof was their mission.
Barang-barang di Wareville berfokus pada keamanan. The Glitch menemukan bahwa sebuah aplikasi secara ilegal melacak mobil-mobil di kota tersebut. Tidak banyak kasus pencurian mobil di kota yang membenarkan tindakan ekstrem seperti ini. Ia menghubungi McSkidy untuk menyelidiki dan mengidentifikasi bagaimana aplikasi tersebut melacak kendaraan dan membocorkan lokasi pengguna.
Pendahuluan tentang WebSocket
WebSocket memungkinkan browser dan server menjaga jalur komunikasi yang terus terbuka. Berbeda dengan metode tradisional di mana browser meminta sesuatu, server merespons, lalu koneksi ditutup, WebSocket seperti menjaga jalur telepon tetap terbuka sehingga komunikasi dapat dilakukan kapan saja. Setelah koneksi terjalin, klien dan server dapat saling mengirim pesan tanpa perlu banyak permintaan tambahan.
WebSocket sangat cocok untuk aplikasi obrolan langsung, game real-time, atau aliran data langsung yang memerlukan pembaruan konstan. Setelah proses handshake selesai, kedua sisi dapat saling mengirim pesan kapan saja. Ini mengurangi overhead dan memungkinkan komunikasi lebih cepat untuk kebutuhan data real-time.
Permintaan HTTP Tradisional vs. WebSocket
Dalam HTTP tradisional, browser mengirim permintaan ke server, server merespons, lalu koneksi ditutup. Jika membutuhkan data baru, permintaan baru harus dilakukan. Proses ini seperti mengetuk pintu setiap kali Anda membutuhkan sesuatu—meskipun berhasil, akan sangat melelahkan jika pembaruan dibutuhkan secara terus-menerus.
Sebagai contoh, pada aplikasi obrolan, browser Anda mungkin terus bertanya, “Ada pesan baru?” setiap beberapa detik. Metode ini, yang disebut polling, berfungsi tetapi tidak efisien. Browser dan server harus melakukan banyak pekerjaan yang tidak perlu untuk tetap diperbarui.
WebSocket bekerja secara berbeda. Setelah koneksi terjalin, koneksi tetap terbuka, memungkinkan server untuk mengirim pembaruan langsung kapan saja ada hal baru. Ini seperti meninggalkan pintu terbuka agar pembaruan datang langsung tanpa harus terus-menerus bolak-balik. Pendekatan ini lebih cepat dan menggunakan lebih sedikit sumber daya.
Kerentanan WebSocket
Meski WebSocket meningkatkan kinerja, fitur ini juga memiliki risiko keamanan yang perlu diawasi oleh pengembang. Karena koneksi WebSocket tetap terbuka dan aktif, ini dapat dimanfaatkan oleh penyerang jika langkah keamanan yang tepat tidak diterapkan. Berikut adalah beberapa kerentanan umum pada WebSocket:
Authentication dan Authorization yang Lemah
Berbeda dengan HTTP reguler, WebSocket tidak memiliki mekanisme bawaan untuk menangani autentikasi pengguna atau validasi sesi. Jika kontrol ini tidak diatur dengan baik, penyerang bisa menyusup untuk mengakses data sensitif atau mengganggu koneksi.
Manipulasi Pesan
WebSocket memungkinkan data mengalir bolak-balik secara konstan. Jika enkripsi tidak digunakan, penyerang dapat mencegat dan mengubah pesan. Mereka bisa menyisipkan perintah berbahaya, melakukan tindakan yang seharusnya tidak diperbolehkan, atau merusak data yang dikirim.
Cross-Site WebSocket Hijacking (CSWSH)
Kerentanan ini terjadi ketika penyerang menipu browser pengguna untuk membuka koneksi WebSocket ke situs lain. Jika berhasil, penyerang dapat mengambil alih koneksi tersebut atau mengakses data yang seharusnya untuk server yang sah.
Denial of Service (DoS)
Karena koneksi WebSocket tetap terbuka, mereka dapat menjadi target serangan DoS. Penyerang dapat membanjiri server dengan banyak pesan, sehingga memperlambat atau bahkan membuat server crash.
Apa Itu Manipulasi Pesan WebSocket?
Manipulasi pesan WebSocket terjadi ketika penyerang mencegat dan mengubah pesan yang dikirim antara aplikasi web dan servernya. Karena koneksi WebSocket tetap terbuka untuk komunikasi dua arah, fitur ini membuka peluang serangan jika keamanan tidak diatur dengan baik.
Dalam serangan ini, penyerang dapat mencegat dan mengubah pesan WebSocket yang sedang dikirim. Misalnya, jika aplikasi mengirim informasi sensitif seperti detail transaksi atau perintah pengguna, penyerang dapat memodifikasi pesan tersebut sehingga aplikasi berperilaku berbeda. Mereka dapat melewati pemeriksaan keamanan, mengirim permintaan yang tidak sah, atau mengubah data penting seperti nama pengguna, jumlah pembayaran, atau level akses.
Dampak Manipulasi Pesan WebSocket
Tindakan Tanpa Izin: Penyerang dapat meniru pengguna lain dan melakukan tindakan tidak sah, seperti pembelian, transfer dana, atau mengubah pengaturan akun.
Meningkatkan Hak Istimewa: Pesan yang dimanipulasi dapat memberikan akses administratif atau kontrol sistem kepada penyerang.
Kerusakan Data: Pesan yang diubah dapat merusak data pengguna, transaksi, atau fungsi aplikasi lainnya.
Crash Sistem: Penyerang dapat mengirimkan pesan buruk dalam jumlah besar, menyebabkan server melambat atau berhenti berfungsi.
Tanpa perlindungan keamanan yang memadai, manipulasi pesan WebSocket dapat menyebabkan kerusakan serius, dari tindakan tanpa izin hingga penghentian layanan sepenuhnya.
Cara Kerja Aplikasi:
Melakukan Tracking dengan cara klik tombol "Track"
Tracking akan mengarah pada mobil Glitch (ceritanya adalah sebagai korban)
Kemudian memiliki fitur chat secara real-time
Setting proxy untuk BurpSuite dan Aktifkan Intercept
Disini terlihat bahwa ketika sebuah chat di kirim, Websocket akan mengirim ke sisi client dan akan terlihat pada browser. Disini juga terlihat bahwa senderid "8" adalah Mayor Malware. Hal ini berlaku juga untuk userid.
WebSocket Message Manipulation vulnerability - Manipulasi Pesan Websocket
Aktifkan Tracking dan terlihat userid adalah 5. Userid akan diganti dengan userid 8 yaitu Mayor Malware
Setelah diganti dan nonaktifkan Intercept, terlihat flag pertama didapat pada chat yaitu oleh Mayor Malware.
Manipulating the Messaging
Percobaan eksploitasi kedua:
Apakah pesan yang diunggah di aplikasi dapat diubah dan dimanipulasi?
Apakah mungkin untuk mengunggah menggunakan ID pengguna yang berbeda?
Aktifkan Intercept dan mencoba mengirim pesan "hello world" pada bagian Chat di aplikasi.
Setelah itu terlihat bahwa message yang ditangkap akan dikirim ke server dan sesuai dengan yang isi chat/message yang dikirim sebelumnya. Userid/sender adalah 5. Ubah menjadi 8 untuk userid milik Mayor Malware dan Forward. Setelah itu matikan "intercept"
Berhasil manipulasi pesan yang dikirim oleh userid 5 dan terlihat bahwa yang mengirim adalah Mayor Malware (userid 8). Flag kedua telah berhasil didapatkan