8.3 KiB
DOM 침입자
htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹을 배우세요**!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하고 싶다면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @carlospolopm를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.
DOM 침입자
DOM 침입자는 Burp의 내장 브라우저에 설치된 브라우저 도구입니다. 웹 메시지 및 프로토타입 오염을 포함한 다양한 소스 및 싱크를 사용하여 DOM XSS 취약점을 감지하는 데 도움이 됩니다. 이 도구는 확장 프로그램으로 미리 설치되어 있습니다.
DOM 침입자는 브라우저의 DevTools 패널에 탭을 통합하여 다음을 가능하게 합니다:
- DOM XSS 테스트를 위해 웹페이지에서 제어 가능한 싱크 식별을 제공하며 컨텍스트 및 살균 세부 정보를 제공합니다.
postMessage()
메서드를 통해 보낸 웹 메시지를 기록, 편집 및 재전송하여 DOM XSS 테스트를 수행합니다. DOM 침입자는 특수하게 제작된 웹 메시지를 사용하여 취약점을 자동으로 감지할 수도 있습니다.- 클라이언트 측 프로토타입 오염 소스를 감지하고 위험한 싱크로 보내진 제어 가능한 가젯을 스캔합니다.
- DOM clobbering 취약점 식별.
활성화하기
Burp의 내장 브라우저에서 Burp 확장으로 이동하여 활성화하세요:
이제 페이지를 새로 고치고 Dev Tools에서 DOM 침입자 탭을 찾을 수 있습니다:
카나리어 삽입
이전 이미지에서 임의의 문자 그룹, 즉 카나리어를 볼 수 있습니다. 이제 이를 웹의 다양한 부분(매개변수, 양식, URL 등)에 삽입하고 매번 검색을 클릭하세요. DOM 침입자는 카나리어가 이해할만한 싱크에 끝났는지 확인합니다.
또한, URL 매개변수 삽입 및 양식 삽입 옵션을 사용하면 각 URL 매개변수 및 찾은 양식에 카나리어를 자동으로 삽입하는 새 탭이 자동으로 열립니다.
빈 카나리어 삽입
싱크가 존재할 수 있지만 취약점이 없더라도 페이지에 있는 잠재적인 싱크를 찾고 싶다면 빈 카나리어를 검색할 수 있습니다.
웹 메시지 보내기
DOM 침입자는 웹 메시지를 사용하여 DOM XSS를 테스트할 수 있도록 다음과 같은 기능을 제공합니다:
postMessage()
를 통해 보낸 웹 메시지를 기록, 이는 Burp Proxy의 HTTP 요청/응답 기록과 유사합니다.- DOM XSS를 수동으로 테스트하기 위해 웹 메시지를 수정하고 재전송합니다. 이는 Burp Repeater의 기능과 유사합니다.
- DOM XSS를 조사하기 위해 웹 메시지를 자동으로 변경하고 보냅니다.
메시지 세부 정보
각 메시지에 대한 자세한 정보를 확인할 수 있으며, 이는 클라이언트 측 JavaScript가 메시지의 origin
, data
, 또는 source
속성에 액세스하는지 여부를 포함합니다.
origin
: 메시지의 원본 정보가 확인되지 않으면, 임의의 외부 도메인에서 이벤트 핸들러로 교차 출처 메시지를 보낼 수 있을 수 있습니다. 그러나 확인되면 여전히 보안 취약할 수 있습니다.data
: 여기에 페이로드가 전송됩니다. 이 데이터가 사용되지 않으면 싱크는 쓸모가 없습니다.source
: 일반적으로 iframe을 참조하는 소스 속성이 원본 대신 유효성이 검사되는지를 평가합니다. 이것이 확인되더라도 유효성 검사가 우회될 수 있다는 것을 보장하지는 않습니다.
메시지 회신
- 메시지 뷰에서 메시지를 클릭하여 메시지 세부 정보 대화 상자를 엽니다.
- 필요한대로 데이터 필드를 편집합니다.
- 보내기를 클릭합니다.
프로토타입 오염
DOM 침입자는 프로토타입 오염 취약점을 검색할 수도 있습니다. 먼저 활성화해야 합니다:
그런 다음, 임의의 속성을 Object.prototype
에 추가할 수 있는 소스를 검색합니다.
무언가를 찾으면 테스트 버튼이 나타나 찾은 소스를 테스트할 수 있습니다. 클릭하면 새 탭이 열리고 콘솔에서 객체를 만들어 testproperty
가 있는지 확인하세요:
let b = {}
b.testproperty
한 번 소스를 찾았다면 가젯을 스캔할 수 있습니다:
- 가젯 스캔 버튼이 클릭되면 DOM Invader에 의해 새 탭이 열리며, 이 버튼은 DOM 뷰에서 식별된 프로토타입 오염 소스 옆에 찾을 수 있습니다. 적합한 가젯을 찾기 위한 스캔이 시작됩니다.
- 동시에, 동일한 탭에서 DOM Invader 탭이 개발자 도구 패널에서 열려야 합니다. 스캔이 완료되면 식별된 가젯을 통해 접근 가능한 싱크가 DOM 뷰에 표시됩니다. 예를 들어,
innerHTML
싱크로 전달되는html
이라는 가젯 속성이 아래 예시에 표시됩니다.
DOM clobbering
이전 이미지에서 DOM clobbering 스캔을 활성화할 수 있다는 것을 확인할 수 있습니다. 완료되면 DOM Invader가 DOM clobbering 취약점을 검색하기 시작합니다.
참고 자료
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/enabling
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-xss
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/web-messages
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/prototype-pollution
- https://portswigger.net/burp/documentation/desktop/tools/dom-invader/dom-clobbering
htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 PDF로 HackTricks 다운로드하려면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 디스코드 그룹 또는 텔레그램 그룹에 가입하거나트위터** 🐦 @carlospolopm를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.