Ang kahinaan sa Adblock Plus na nagbibigay-daan sa pagpapatupad ng code kapag gumagamit ng mga kaduda-dudang filter

Sa Adblock Plus ad blocker nakilala kahinaan, nagpapahintulot ayusin ang pagpapatupad ng JavaScript code sa konteksto ng mga site, sa kaso ng paggamit ng hindi na-verify na mga filter na inihanda ng mga umaatake (halimbawa, kapag nagkokonekta ng mga third-party na hanay ng mga panuntunan o sa pamamagitan ng pagpapalit ng mga panuntunan sa panahon ng pag-atake ng MITM).

Ang mga may-akda ng mga listahan na may mga hanay ng mga filter ay maaaring ayusin ang pagpapatupad ng kanilang code sa konteksto ng mga site na binuksan ng user sa pamamagitan ng pagdaragdag ng mga panuntunan sa operator "pagsulat na muli", na nagpapahintulot sa iyong palitan ang bahagi ng URL. Hindi ka pinapayagan ng operator ng muling pagsulat na palitan ang host sa URL, ngunit pinapayagan ka nitong malayang manipulahin ang mga argumento ng kahilingan. Text lang ang maaaring gamitin bilang kapalit na mask, at pinapayagan ang pagpapalit ng script, object at subdocument tag. hinarangan.

Gayunpaman, ang code execution ay maaaring makamit sa isang workaround.
Ang ilang mga site, kabilang ang Google Maps, Gmail, at Google Images, ay gumagamit ng pamamaraan ng dynamic na pag-load ng mga executable na JavaScript block, na ipinadala sa anyo ng bare text. Kung pinapayagan ng server ang pag-redirect ng kahilingan, ang pagpapasa sa isa pang host ay maaaring makamit sa pamamagitan ng pagbabago ng mga parameter ng URL (halimbawa, sa konteksto ng Google, ang isang pag-redirect ay maaaring gawin sa pamamagitan ng API "google.com/search"). Bilang karagdagan sa mga host na nagpapahintulot sa pag-redirect, maaari ding magsagawa ng pag-atake laban sa mga serbisyong nagbibigay-daan sa pag-post ng nilalaman ng user (pagho-host ng code, mga platform ng pag-post ng artikulo, atbp.).

Ang iminungkahing paraan ng pag-atake ay nakakaapekto lamang sa mga page na dynamic na naglo-load ng mga string ng JavaScript code (halimbawa, sa pamamagitan ng XMLHttpRequest o Fetch) at pagkatapos ay isagawa ang mga ito. Ang isa pang mahalagang limitasyon ay ang pangangailangang gumamit ng redirect o maglagay ng di-makatwirang data sa gilid ng orihinal na server na nagbibigay ng mapagkukunan. Gayunpaman, upang ipakita ang kaugnayan ng pag-atake, ipinapakita kung paano ayusin ang pagpapatupad ng iyong code kapag binubuksan ang maps.google.com, gamit ang isang pag-redirect sa pamamagitan ng β€œgoogle.com/search”.

Ang pag-aayos ay nasa paghahanda pa rin. Ang problema ay nakakaapekto rin sa mga blocker AdBlock ΠΈ uBlock. Ang uBlock Origin blocker ay hindi apektado ng problema, dahil hindi nito sinusuportahan ang "rewrite" operator. Sa isang pagkakataon ang may-akda ng uBlock Origin
tumanggi magdagdag ng suporta para sa muling pagsulat, pagbanggit ng mga potensyal na isyu sa seguridad at hindi sapat na mga paghihigpit sa antas ng host (isang querystrip na opsyon ang iminungkahi sa halip na muling isulat upang linisin ang mga parameter ng query sa halip na palitan ang mga ito).

Itinuturing ng mga developer ng Adblock Plus na ang mga totoong pag-atake ay hindi malamang, dahil ang lahat ng mga pagbabago sa mga karaniwang listahan ng mga panuntunan ay sinusuri, at ang pagkonekta sa mga listahan ng third-party ay napakabihirang sa mga user. Ang pagpapalit ng mga panuntunan sa pamamagitan ng MITM ay pinipigilan ng default na paggamit ng HTTPS para sa pag-download ng mga karaniwang block list (para sa iba pang mga listahan ay binalak na ipagbawal ang pag-download sa pamamagitan ng HTTP sa isang release sa hinaharap). Maaaring gamitin ang mga direktiba upang harangan ang isang pag-atake sa gilid ng site CSP (Patakaran sa Seguridad ng Nilalaman), kung saan malinaw mong matutukoy ang mga host kung saan maaaring ma-load ang mga panlabas na mapagkukunan.

Pinagmulan: opennet.ru

Magdagdag ng komento