Eksploitasi filter Adblock Plus untuk menjalankan kode arbitrer yang ditemukan

Sebagian besar pemblokir konten menggunakan dan memuat daftar filter yang menyertakan instruksi untuk memblokir atau mengubah konten tertentu pada situs yang dikunjungi di browser web secara default; ini dilakukan untuk memastikan bahwa konfigurasi default benar-benar memblokir sebagian besar konten yang tidak diinginkan.

Sebagian besar ekstensi mendukung daftar khusus dan filter individual. Pengguna dapat memuat daftar khusus di sebagian besar ekstensi dan menambahkan filter sendiri ke daftar.

Pembaruan : Eyeo GMHB mengumumkan hari ini bahwa ia akan menghapus fungsi $ rewrite di masa mendatang. Harapkan rilis baru segera yang menghapus jika dari ekstensi. Akhir

Peneliti keamanan Armin Sebastian menemukan exploit di adblocker tertentu seperti Adblock Plus yang dapat digunakan untuk menjalankan kode jahat di situs yang dikunjungi di browser.

Eksploitasi menggunakan opsi filter yang disebut $ rewrite yang didukung Adblock Plus untuk menyuntikkan kode arbitrer di halaman web. Filter $ rewrite digunakan untuk mengganti kode di situs dengan menulis ulang. Opsi filter membatasi operasi; itu dirancang untuk memuat konten hanya dari sumber pihak pertama dan bukan situs atau server pihak ketiga, dan beberapa permintaan, misalnya skrip atau objek, juga tidak diizinkan.

Sebastian menemukan kerentanan dalam $ menulis ulang yang dapat dimanfaatkan penyerang untuk memuat konten dari lokasi yang jauh. Kondisi yang perlu dipenuhi adalah:

  1. String JavaScript perlu dimuat menggunakan XMLHttpRequest atau Fetch, dan kode pengembalian harus dijalankan.
  2. Origins tidak dapat dibatasi pada halaman, misalnya dengan menggunakan arahan Kebijakan Keamanan Konten, dan URL permintaan akhir tidak dapat divalidasi sebelum eksekusi.
  3. Asal kode harus memiliki pengalihan terbuka sisi-server, atau harus meng-host konten pengguna yang sewenang-wenang.

Properti yang cocok dengan ketiga persyaratan termasuk Google Maps, Gmail, atau Gambar Google antara lain. Bukti konsep dipublikasikan di situs web penulis dan Anda dapat mencobanya di Google Maps untuk memverifikasi bahwa konsep itu berfungsi.

Saya mencoba exploit di Chrome dan Firefox, dan tidak bisa membuatnya bekerja. Lawrence Abrams di Bleeping Computer berhasil membuatnya bekerja.

Kata Penutup

Serangan memiliki persyaratan lain, karena bergantung pada filter. Filter yang dimanipulasi perlu ditambahkan ke daftar filter yang digunakan oleh pemblokir konten. Dua opsi yang paling umum termasuk pengguna menambahkan filter secara manual ke pemblokir konten mereka, atau bahwa filter yang dimanipulasi ada dalam daftar filter yang dimuat.

Opsi kedua tampaknya lebih mungkin, terutama dalam hal pengguna memuat daftar lain di ekstensi. Ini bukan pertama kalinya bahwa daftar dimanipulasi tetapi tidak sering terjadi.

Ekstensi uBlock Origin tidak terpengaruh oleh masalah karena tidak mendukung $ rewrite.