발견 된 임의 코드를 실행하기위한 Adblock Plus 필터 악용

대부분의 콘텐츠 차단기는 기본적으로 웹 브라우저에서 방문한 사이트의 특정 콘텐츠를 차단하거나 변경하는 지침이 포함 된 필터 목록을 사용하고로드합니다. 기본 구성이 원하지 않는 컨텐츠를 즉시 차단하도록하기 위해 수행됩니다.

대부분의 확장 프로그램은 사용자 지정 목록 및 개별 필터를 지원합니다. 사용자는 대부분의 확장 프로그램에 사용자 지정 목록을로드하고 자신의 필터를 목록에 추가 할 수도 있습니다.

업데이트 : Eyeo GMHB는 오늘 $ rewrite 기능을 제거 할 것이라고 발표했습니다. 확장에서 if를 제거하는 새로운 릴리스가 곧 출시 될 것으로 예상됩니다. 종료

보안 연구원 Armin Sebastian은 브라우저를 방문한 사이트에서 악성 코드를 실행하는 데 사용될 수있는 Adblock Plus와 같은 특정 애드 블로커의 악용을 발견했습니다.

이 익스플로잇은 Adblock Plus가 웹 페이지에 임의의 코드를 삽입하도록 지원하는 $ rewrite라는 필터 옵션을 사용합니다. $ rewrite 필터는 사이트에서 코드를 다시 작성하여 바꾸는 데 사용됩니다. 필터 옵션은 작업을 제한합니다. 타사 사이트 나 서버가 아닌 자사 소스에서만 콘텐츠를로드하도록 설계되었으며 스크립트 나 개체와 같은 일부 요청도 허용되지 않습니다.

Sebastian은 $ rewrite에서 공격자가 원격 위치에서 콘텐츠를로드하기 위해 악용 할 수있는 취약점을 발견했습니다. 충족해야하는 조건은 다음과 같습니다.

  1. XMLHttpRequest 또는 Fetch를 사용하여 JavaScript 문자열을로드해야하며 리턴 코드를 실행해야합니다.
  2. 예를 들어 콘텐츠 보안 정책 지시문을 사용하여 페이지에서 오리진을 제한 할 수 없으며 실행 전에 최종 요청 URL을 확인할 수 없습니다.
  3. 코드의 출처는 서버 측 오픈 리다이렉션을 가지고 있거나 임의의 사용자 컨텐츠를 호스팅해야합니다.

세 가지 요구 사항 모두에 맞는 속성에는 Google지도, Gmail 또는 Google 이미지가 포함됩니다. 개념 증명이 작성자의 웹 사이트에 게시되었으며 Google지도에서 시도하여 작동하는지 확인할 수 있습니다.

Chrome 및 Firefox에서 익스플로잇을 시도했지만 작동하지 못했습니다. Bleeping Computer의 Lawrence Abrams는 작동하도록했습니다.

닫는 단어

공격은 필터에 의존하기 때문에 또 다른 요구 사항이 있습니다. 콘텐츠 차단기가 사용하는 필터 목록에 조작 된 필터를 추가해야합니다. 가장 일반적인 두 가지 옵션에는 컨텐츠 차단기에 수동으로 필터를 추가하거나 조작 된 필터가로드 된 필터 목록에있는 사용자가 포함됩니다.

두 번째 옵션은 특히 사용자가 확장 프로그램에서 다른 목록을로드하는 경우 더 가능성이 높습니다. 목록이 처음으로 조작되는 것은 아니지만 자주 발생하지는 않습니다.

확장 uBlock Origin은 $ rewrite를 지원하지 않으므로이 문제의 영향을받지 않습니다.