Adblock Plus използва филтъра, за да стартира открит произволен код

Повечето блокери на съдържание използват и зареждат списъци с филтри, които включват инструкции за блокиране или промяна на определено съдържание в посещаваните сайтове в уеб браузъра по подразбиране; това се прави, за да се гарантира, че конфигурациите по подразбиране блокират добре парче нежелано съдържание веднага.

Повечето разширения поддържат персонализирани списъци и отделни филтри. Потребителите могат да зареждат персонализирани списъци в повечето разширения и да добавят свои собствени филтри към списъка.

Актуализация : Eyeo GMHB обяви днес, че ще премахне функцията $ rewrite за напред. Очаквайте скоро ново издание, което да бъде премахнато ако от разширението. Край

Изследователят по сигурността Армин Себастиан откри експлоатация в някои adblockers като Adblock Plus, която може да се използва за пускане на злонамерен код на сайтове, посетени в браузъра.

В експлоатацията се използва опция за филтри, наречена $ rewrite, която Adblock Plus поддържа, за да инжектира произволен код в уеб страници. Филтърът за пренаписване на $ се използва за замяна на код на сайтове, като го пренапише. Опцията за филтър ограничава работата; той е предназначен да зарежда съдържание само от първоизточника източник, а не от сайтове или сървъри на трети страни, а някои заявки, например скрипт или обект, също не са разрешени.

Себастиан откри уязвимост в $ rewrite, която нападателите могат да използват за зареждане на съдържание от отдалечени места. Условията, които трябва да бъдат изпълнени, са:

  1. JavaScript низ трябва да бъде зареден с помощта на XMLHttpRequest или Fetch и връщащият код трябва да бъде изпълнен.
  2. Произходът не може да бъде ограничен на страницата, например чрез използване на директиви на политиката за защита на съдържанието и крайният URL адрес на заявката не може да бъде валидиран преди изпълнението.
  3. Произходът на кода трябва да има отворена пренасочване от страна на сървъра или трябва да хоства произволно потребителско съдържание.

Свойствата, които отговарят и на трите изисквания, включват Google Maps, Gmail или Google Images. Документ за концепция беше публикуван на уебсайта на автора и можете да опитате в Google Maps, за да проверите дали работи.

Опитах експлоатацията в Chrome и Firefox и не можах да го накарам да работи. Лоурънс Ейбрамс на Bleeping Computer обаче успя да го накара да работи.

Заключителни думи

Атаката има и друго изискване, тъй като разчита на филтри. Трябва да се добави манипулиран филтър към списъка на филтрите, използвани от блокера на съдържанието. Двете най-често срещани опции включват потребители, които добавят филтри ръчно към своите блокери на съдържание, или че манипулиран филтър е в списък с филтри, който се зарежда.

Втората опция изглежда по-вероятна, особено в случаите, когато потребителите зареждат други списъци в разширенията. Не за първи път списъците се манипулират, но това не се случва много често.

Разширението uBlock Origin не се влияе от проблема, тъй като не поддържа $ rewrite.