Повечето блокери на съдържание използват и зареждат списъци с филтри, които включват инструкции за блокиране или промяна на определено съдържание в посещаваните сайтове в уеб браузъра по подразбиране; това се прави, за да се гарантира, че конфигурациите по подразбиране блокират добре парче нежелано съдържание веднага.
Повечето разширения поддържат персонализирани списъци и отделни филтри. Потребителите могат да зареждат персонализирани списъци в повечето разширения и да добавят свои собствени филтри към списъка.
Актуализация : Eyeo GMHB обяви днес, че ще премахне функцията $ rewrite за напред. Очаквайте скоро ново издание, което да бъде премахнато ако от разширението. Край
Изследователят по сигурността Армин Себастиан откри експлоатация в някои adblockers като Adblock Plus, която може да се използва за пускане на злонамерен код на сайтове, посетени в браузъра.
В експлоатацията се използва опция за филтри, наречена $ rewrite, която Adblock Plus поддържа, за да инжектира произволен код в уеб страници. Филтърът за пренаписване на $ се използва за замяна на код на сайтове, като го пренапише. Опцията за филтър ограничава работата; той е предназначен да зарежда съдържание само от първоизточника източник, а не от сайтове или сървъри на трети страни, а някои заявки, например скрипт или обект, също не са разрешени.
Себастиан откри уязвимост в $ rewrite, която нападателите могат да използват за зареждане на съдържание от отдалечени места. Условията, които трябва да бъдат изпълнени, са:
- JavaScript низ трябва да бъде зареден с помощта на XMLHttpRequest или Fetch и връщащият код трябва да бъде изпълнен.
- Произходът не може да бъде ограничен на страницата, например чрез използване на директиви на политиката за защита на съдържанието и крайният URL адрес на заявката не може да бъде валидиран преди изпълнението.
- Произходът на кода трябва да има отворена пренасочване от страна на сървъра или трябва да хоства произволно потребителско съдържание.
Свойствата, които отговарят и на трите изисквания, включват Google Maps, Gmail или Google Images. Документ за концепция беше публикуван на уебсайта на автора и можете да опитате в Google Maps, за да проверите дали работи.
Опитах експлоатацията в Chrome и Firefox и не можах да го накарам да работи. Лоурънс Ейбрамс на Bleeping Computer обаче успя да го накара да работи.
Заключителни думи
Атаката има и друго изискване, тъй като разчита на филтри. Трябва да се добави манипулиран филтър към списъка на филтрите, използвани от блокера на съдържанието. Двете най-често срещани опции включват потребители, които добавят филтри ръчно към своите блокери на съдържание, или че манипулиран филтър е в списък с филтри, който се зарежда.
Втората опция изглежда по-вероятна, особено в случаите, когато потребителите зареждат други списъци в разширенията. Не за първи път списъците се манипулират, но това не се случва много често.
Разширението uBlock Origin не се влияе от проблема, тъй като не поддържа $ rewrite.