Penapis Adblock Plus mengeksploitasi untuk menjalankan kod sewenang-wenangnya

Kebanyakan penyekat kandungan menggunakan dan memuatkan senarai penapis yang termasuk arahan untuk menyekat atau mengubah kandungan tertentu pada laman web yang dikunjungi dalam penyemak imbas web secara lalai; ini dilakukan untuk memastikan bahawa konfigurasi lalai akan menyekat sekeping kandungan yang tidak diingini dengan segera.

Kebanyakan sambungan menyokong senarai peribadi dan penapis individu. Pengguna boleh memuat senarai tersuai dalam kebanyakan pelanjutan dan menambah penapis mereka sendiri ke senarai juga.

Kemas kini : Eyeo GMHB hari ini mengumumkan bahawa ia akan mengeluarkan fungsi menulis semula $ ke depan. Jangkakan pelepasan baru tidak lama lagi yang membuang jika dari pelanjutan. Akhirnya

Penyelidik keselamatan Armin Sebastian mendapati eksploit dalam adblockers tertentu seperti Adblock Plus yang boleh digunakan untuk menjalankan kod jahat pada laman web yang dilawati di pelayar.

Eksploitasi menggunakan pilihan penapis yang dipanggil $ menulis semula yang Adblock Plus menyokong untuk menyuntik kod sewenang-wenangnya dalam laman web. Penapis rewrite $ digunakan untuk menggantikan kod di laman dengan menulis semulanya. Pilihan penapis mengehadkan operasi; ia direka untuk memuatkan kandungan hanya dari sumber pihak pertama dan bukan laman web atau pelayan pihak ketiga, dan sesetengah permintaan, misalnya skrip atau objek, tidak dibenarkan sama ada.

Sebastian menemui kelemahan dalam menulis semula $ yang boleh digunakan oleh penyerang untuk memuat kandungan dari lokasi terpencil. Keadaan yang perlu dipenuhi adalah:

  1. Rentetan JavaScript perlu dimuatkan menggunakan XMLHttpRequest atau Ambil, dan kod pemulangan mesti dilaksanakan.
  2. Asal-usul tidak boleh dihadkan pada halaman, contohnya dengan menggunakan arahan Dasar Keselamatan Kandungan, dan URL permintaan akhir tidak dapat disahkan sebelum pelaksanaan.
  3. Asal kod tersebut mesti mempunyai peralihan terbuka pihak pelayan, atau harus menjadi tuan rumah konten pengguna sewenang-wenangnya.

Hartanah yang sepadan dengan ketiga-tiga keperluan termasuk Peta Google, Gmail, atau Imej Google antara lain. Bukti konsep diterbitkan di laman web penulis dan anda boleh mencubanya di Peta Google untuk mengesahkan bahawa ia berfungsi.

Saya cuba mengeksploitasi dalam Chrome dan Firefox, dan tidak dapat berfungsi. Lawrence Abrams di atas Bleeping Computer berjaya mendapatkannya untuk bekerja walaupun.

Kata penutupan

Serangan itu mempunyai keperluan lain, kerana ia bergantung pada penapis. Penapis yang dimanipulasi perlu ditambah ke senarai penapis yang digunakan oleh penyekat kandungan. Kedua-dua pilihan yang paling umum termasuk pengguna menambah penapis secara manual ke penyekat kandungan mereka, atau penapis yang dimanipulasi berada pada senarai penapis yang dimuatkan.

Pilihan kedua nampaknya lebih cenderung, terutamanya dalam kes adalah pengguna memuat senarai lain dalam sambungan. Bukan kali pertama senarai itu dimanipulasi tetapi ia tidak berlaku dengan kerap.

Pelanjutan uBlock Origin tidak dipengaruhi oleh masalah kerana ia tidak menyokong penulisan semula $.