SOME - Same Origin Method Execution

htARTE (HackTricks AWS Red Team 전문가)로부터 제로에서 히어로까지 AWS 해킹 배우기

WhiteIntel다크 웹을 통해 동작하는 검색 엔진으로, 회사 또는 고객이 스틸러 악성 소프트웨어에 의해 침해되었는지 확인하는 무료 기능을 제공합니다.

WhiteIntel의 주요 목표는 정보를 도난당한 악성 소프트웨어로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.

그들의 웹사이트를 확인하고 무료로 엔진을 시도해보세요:


Same Origin Method Execution

가끔 페이지에서 일부 제한된 자바스크립트를 실행할 수 있는 경우가 있습니다. 예를 들어, 실행될 콜백 값을 제어할 수 있는 경우입니다.

이러한 경우에, 할 수 있는 가장 좋은 일 중 하나는 DOM에 액세스하여 거기에서 찾을 수 있는 민감한 작업(예: 버튼 클릭)을 호출하는 것입니다. 그러나 보통 DOM에 흥미로운 것이 전혀 없는 작은 엔드포인트에서 이 취약점을 찾을 것입니다.

이러한 시나리오에서 이 공격은 매우 유용할 것입니다. 왜냐하면 그 목표는 같은 도메인의 다른 페이지에서 DOM 내부의 제한된 JS 실행을 악용하여 매우 흥미로운 작업을 수행할 수 있도록 하는 것입니다.

기본적으로, 공격 흐름은 다음과 같습니다:

  • 악용할 수 있는 콜백을 찾으세요 (잠재적으로 [\w\._]로 제한될 수 있음).

  • 제한이 없고 어떤 JS든 실행할 수 있는 경우, 이를 일반적인 XSS로 악용할 수 있습니다.

  • 피해자에게 공격자가 제어하는 페이지를 열도록 하세요

  • 페이지는 다른 창에서 자체를 열게 됩니다(새 창은 초기 창을 참조하는 opener 객체를 가질 것입니다).

  • 초기 페이지흥미로운 DOM이 있는 페이지를 로드할 것입니다.

  • 두 번째 페이지콜백을 악용하고 opener 객체를 사용하여 초기 페이지에서 어떤 작업을 액세스하고 실행할 것입니다(이제 흥미로운 DOM이 포함된 초기 페이지).

초기 페이지가 두 번째 페이지를 생성한 후 새 URL에 액세스하더라도, 두 번째 페이지의 opener 객체는 새 DOM에서 첫 번째 페이지를 여전히 유효한 참조로 유지합니다.

또한 두 번째 페이지가 opener 객체를 사용할 수 있도록 하려면 두 페이지가 동일한 출처에 있어야합니다. 이것이 이 취약점을 악용하기 위해 같은 출처의 XSS를 찾아야 하는 이유입니다.

Exploitation

Example

  • https://www.someattack.com/Playground/에서 취약한 예제를 찾을 수 있습니다.

  • 이 예제에서 서버는 콜백 매개변수의 내용에 따라 javascript 코드를 생성하고 HTML에 추가합니다: <script>opener.{callbacl_content}</script> . 이 예에서는 명시적으로 opener의 사용을 표시할 필요가 없습니다.

  • 또한 이 CTF writeup을 확인하세요: https://ctftime.org/writeup/36068

References

htARTE (HackTricks AWS Red Team 전문가)로부터 제로에서 히어로까지 AWS 해킹 배우기

Last updated