Cara Membuat Serangan XSS dengan Inject Javascript di File JPEG

Pada tutorial singkat tentang computer security kali ini, kita akan membahas bagaimana cara menyerang kelemahan server dengan teknik XSS (cross-site scripting). Caranya secara sederhana adalah dengan membenamkan script javascript ke dalam file JPEG yang akan kita upload ke target.

Seperti biasa, tutorial ini hanya sebagai kewaspadaan dan kepentingan ilmu pengetahuan saja, jangan digunakan untuk melakukan kejahatan.

XSS Biasanya Sudah Di Filter

Kebanyakan framework modern sudah memiliki script anti-xss yang memastikan, untuk mencegat user memasukkan script PHP, javascript atau file tipe lain yang bisa tereksekusi baik di sisi server maupun browser. Nah, namun tidak banyak yang mengimplementasikannya secara rigit dan ‘galak’. Terutama dengan teknik yang kita gunakan, “membenamkan script javascript ke file JPG”.

Struktur File JPG

Gambar JPEG direpresentasikan sebagai urutan segmen di mana setiap segmen dimulai dengan header. Setiap header dimulai dengan beberapa byte. Muatan yang diikuti oleh tajuk berbeda sesuai jenis tajuk. Jenis penanda JPEG umum adalah seperti yang tercantum di bawah ini:

0xffd8: "Awal Gambar",
0xffe0: “Header Default Aplikasi”,
0xffdb: "Tabel Kuantisasi",
0xffc0: "Awal Bingkai",
0xffc4: "Tentukan Tabel Huffman",
0xffda: "Mulai Pemindaian",
0xffd9: "Akhir Gambar"

Setiap file biner berisi beberapa header. Mereka sangat penting untuk sebuah file karena mereka mendefinisikan informasi spesifik dari sebuah file. Sebagian besar header diikuti oleh informasi panjang. Ini memberitahu kita berapa lama segmen tertentu itu.

Awal header gambar berisi FF D8. Jika kami tidak melihatnya, kami dapat menganggap ini adalah file lain. Penanda penting lainnya adalah FF D9 yang memberi tahu akhir gambar.

Untuk membuat payload terlihat seperti file JPEG yang sah, kita akan menambahkan panjang header, header komentar, null byes ke pad dan kemudian vektor serangan javascript kami.

Inject Javascript ke JPG

Misalnya, simple saja kita akan menampilkan alert ketika foto tersebut di tampilkan di web. Foto tersebut kita inject dengan script

*/=alert(“XSS”)/*

Kita convert script tersebut dengan tool ini https://www.rapidtables.com/convert/number/ascii-to-hex.html dan mendapatkan hasil seperti ini

2A 2F 3D 61 6C 65 72 74 28 201C 58 53 53 201D 29 2F 2A

kemudian buka file JPG yang akan kita jadikan dummy, dan inject kode heksadesimal diatas.

dan coba tampilkan di browser dan lihat hasilnya:

Sumber