DNS 리바인딩 공격

Feb 08 2023
DNS 리바인딩은 DNS 확인을 조작하여 동일 출처 정책을 우회하는 방법입니다. 브라우저에서 일반적인 교차 출처 공격을 차단하는 방법은 무엇입니까? 여기에서 브라우저는 공격자 출처의 응답 페이지가 다른 출처(예:

DNS Rebinding은 DNS resolution을 조작하여 Same Origin Policy를 우회하는 방법입니다.

브라우저에서 일반적인 교차 출처 공격을 차단하는 방법은 무엇입니까?

교차 출처 요청을 차단하는 브라우저

여기에서 브라우저는 공격자 출처의 응답 페이지가 다른 출처(예: localhost)의 페이지를 요청하고 있음을 이해합니다 ³ . 'cross-origin'으로 '단순하지 않은 요청'이므로 브라우저는 기본적으로 요청을 차단합니다.

로컬 서버에 접속하기 위해서는 SOP를 우회해야 합니다.

우리를 구출하기 위해 DNS 리바인딩이 옵니다…

공격 시나리오

동일 출처 정책을 우회하는 DNS 리바인딩 공격

초기 DNS 확인에서 attack.com은 6.6.6.6 ² 로 확인됩니다 . 따라서 브라우저는 6.6.6.6에 요청을 보내고 공격자 응답을 받습니다. 공격자 응답에는 attack.com에 대한 가져오기 요청이 다시 포함될 수 있습니다. 여기에서 공격자 출처의 페이지가 공격자 출처에서 리소스를 요청하므로 동일한 origin⁵ 입니다 .

DNS 서버를 구성하는 동안 공격자는 TTL(Time-To-Live)을 작은 값(예: 2초)²으로 설정합니다 .

따라서 브라우저는 Attacker.com에 대한 가져오기 요청을 실행하는 동안 다시 DNS 서버에 Attacker.com 해상도 ⁵를 요청 하며 이제 127.0.0.1⁶로 확인됩니다(공격자는 DNS 서버 구성에 두 개의 A 레코드를 설정함).

그런 다음 브라우저는 공격자 페이지에서 127.0.0.1 ⁸ 에 대한 DELETE 리소스 요청인 다음 요청을 실행합니다 . 127.0.0.1과 같은 출처의 로컬 호스트에 대한 요청이므로 브라우저는 차단하지 않고 실행합니다.
리소스가 삭제됩니다⁹

어떻게 하면 DNS 서버를 빠르게 가동할 수 있습니까?

당신은 응용 프로그램을 사용할 수 있습니다http://lock.cmpxchg8b.com/rebinder.html(소스코드도 가능)

다른 공격 시나리오 ?

  1. 혼란스러운 서버 측 인프라

공격자에 대한 제약/개발자를 위한 완화

1. 본인인증이 필요한 경우

2. SSL 인증서가 있는 경우

3. 서버가 호스트 헤더를 확인하는 경우

4. 사용자 지정 프로토콜 처리기(예: chrome:// )가 정의되고 로컬 애플리케이션에 액세스하는 데 사용되는 경우

참조:

  • DEF CON 25 — 루크 영
  • Tavis Ormandy의 공격 URI 또는 ​​DNS 확인을 위한 웹 애플리케이션
  • 버그 바운티 | Leet Cipher에 의한 DNS 리바인딩을 사용하는 SSRF 바이패스에 $2000
  • Feross의 Data-Rebinding 공격 강의
  • Gerald Doussot — DNS 리바인딩 공격 상태 및 오리진의 특이점 — DEF CON 27 컨퍼런스
  • Basavaraj의 DNS 리바인딩(CVE-2022–4096)을 통한 SSRF
  • 특이점 도구