Використовувати фільтр Adblock Plus для запуску довільного коду

Більшість блокаторів вмісту використовують та завантажують списки фільтрів, які містять інструкції щодо блокування чи зміни певного вмісту на відвідуваних сайтах веб-браузера за замовчуванням; це робиться для того, щоб конфігурації за замовчуванням блокували хороший шматок небажаного вмісту одразу.

Більшість розширень підтримують власні списки та окремі фільтри. Користувачі можуть завантажувати власні списки в більшості розширень і додавати власні фільтри до списку.

Оновлення : Eyeo GMHB оголосила сьогодні, що вона видалить функцію переписання $ вперед. Невдовзі очікуйте нового випуску, який видаляється, якщо з розширення. Кінець

Дослідник безпеки Армін Себастьян виявив подвиг у деяких рекламних блокаторах, таких як Adblock Plus, який може використовуватися для запуску шкідливого коду на сайтах, відвіданих у веб-переглядачі.

В експлуатації використовується опція фільтра під назвою $ rewrite, яку підтримує Adblock Plus для введення довільного коду на веб-сторінки. Фільтр переписати $ використовується для заміни коду на сайтах шляхом його перезапису. Параметр фільтра обмежує роботу; він призначений для завантаження вмісту тільки з сторонніх джерел, а не сторонніх сайтів чи серверів, а деякі запити, наприклад, сценарій або об'єкт, також не дозволені.

Себастьян виявив вразливість у $ rewrite, яку зловмисники можуть використовувати для завантаження вмісту з віддалених місць. Умови, які необхідно виконати:

  1. Рядок JavaScript потрібно завантажувати за допомогою XMLHttpRequest або Fetch, і код повернення повинен бути виконаний.
  2. Вихідні дані не можуть бути обмежені на сторінці, наприклад, використовуючи директиви Політики щодо захисту вмісту, і остаточну URL-адресу запиту не можна перевірити перед виконанням.
  3. Походження коду повинно мати відкрите перенаправлення на стороні сервера або має розміщувати довільний вміст користувача.

Властивості, які відповідають усім трьом вимогам, включають Google Maps, Gmail або Google Images серед інших. Довідка про концепцію була опублікована на веб-сайті автора, і ви можете спробувати її на Картах Google, щоб переконатися, що вона працює.

Я спробував експлуатувати в Chrome і Firefox, і не міг змусити його працювати. Лоуренс Абрамс на Bleeping Computer встиг змусити його працювати.

Заключні слова

Атака має ще одну вимогу, оскільки вона покладається на фільтри. Маніпульований фільтр потрібно додати до списку фільтрів, використовуваних блокатором вмісту. Дві найпоширеніші варіанти включають користувачів, які додають фільтри вручну до своїх блокаторів вмісту, або що маніпульований фільтр знаходиться у списку фільтрів, який завантажується.

Другий варіант видається більш імовірним, особливо у випадках, коли користувачі завантажують інші списки в розширення. Це не перший раз, коли списки маніпулюють, але це трапляється не дуже часто.

Проблема розширення uBlock не впливає на проблему, оскільки не підтримує $ переписати.