flawopen.com/xss/C-cpp

● CWE-79 · Tinggi
Riset Keamanan · FlawOpen

Cross-Site Scripting in C/C++

Learn how to fix Cross-Site Scripting (XSS) (CWE-79) in C and C++. Side-by-side vulnerable vs secure code examples for contextual entity escaping in CGI / Crow web services.

💡 Penjelasan Sederhana (ELI5)

Bayangkan menempelkan catatan pada papan pengumuman umum yang bertuliskan: 'Siapa pun yang membaca ini, serahkan dompet Anda kepada orang di sebelah Anda'. Jika setiap pengunjung secara buta mematuhi catatan tersebut, pelaku dapat mencuri uang semua orang.

Konsep Kunci & Istilah

Web Application Security
Komponen arsitektur utama yang terpengaruh oleh CWE-79.
CWE-79
Klasifikasi standar Common Weakness Enumeration (CWE) untuk xss-c-cpp.
Defense-in-Depth
Verifikasi rekayasa berlapis dan isolasi batas waktu proses (runtime).

Alur Serangan Langkah demi Langkah

Step 1

Penyuntikan Payload Skrip Berbahaya

Penyerang menyisipkan tag HTML atau kode JavaScript (misal: <script> atau <img onerror=...>) ke dalam formulir atau URL.

Step 2

Penyajian DOM Tanpa Pelolosan (Escape)

Aplikasi menampilkan input langsung ke halaman HTML tanpa pengkodean entitas HTML sesuai konteks.

Step 3

Parsing & Eksekusi DOM di Peramban Korban

Saat korban mengunjungi halaman, browser menafsirkan karakter yang disuntikkan sebagai kode yang dapat dieksekusi.

Step 4

Pembajakan Sesi & Pencurian Token Akses

Skrip berjalan dalam konteks kredensial korban, mencuri cookie autentikasi dan token penyimpanan lokal.

Kode Sumber: Rentan vs Aman

✕ IMPLEMENTASI RENTAN
/* comment text written with no encoding */
fprintf(response,
  "<div>%s</div>", comment_text);
✓ PERBAIKAN AMAN & KUAT
/* encode before insertion */
char *encoded = html_encode(comment_text);
fprintf(response,
  "<div>%s</div>", encoded);
free(encoded);

Daftar Periksa Penguatan Sistem Rekayasa

References