Study/Web

[Web]DNS rebinding

seomj 2022. 10. 9. 21:46

DNS rebinding

사용되는 도메인 이름 확인을 조작하는 방법

SOP(Same Origin Policy)를 우회하는 공격기법

 

악의적인 사이트의 도메인에 할당된 IP를 잠재적인 희생자가 사이트에 들어와 있는 동안 공격하고자 하는 사이트의 IP로 바꾸어 Same Origin Policy를 우회하는 방법

 

공격자의 DNS 서버에서 반환하는 IP 주소가 바뀔 수 있음에도 불구하고 브라우저가 same origin으로 판단하여 차단하지 않는 공격

브라우저가 그렇게 판단하는 이유는 scheme://domain:port 가 모두 동일하기 때문이다.

 

 

SOP(Same Origin Policy)

- 다른 출처 간 자원 접근 차단 정책

 

웹 보안 정책에서 Origin(출처)는 scheme, host, port 세 가지로 구성되어 있다.

 

scheme는 http:// 나 https://나 ftp:// 와 같은 URI의 맨 앞에 붙는 문자열을 의미한다.

이는 클라이언트에서 이를 처리하는 방식을 지정한다. http가 붙으면 해당 프로토콜로 작동하는 것처럼 말이다.

 

host는 "www.tistory.com"과 같은 도메인을 의미한다.

이 뒤에 붙는 path는 포함되지 않는다.

 

port는 포트번호를 의미한다.

 

기본 출처: http://seomj74.ml (80포트) 

  • http://seomj74.ml/some_dir/index.php-> O
  • https://seomj74.ml -> X(scheme)
  • http://google.com -> X(host)
  • http://seomj74.ml:4301 -> X(port)

 

 

공격 과정

1. 공격자는 attacker.com이라는 웹사이트를 운영한다. 공격자의 DNS 서버에서는 IP 주소를 주기적으로 요청하는 악성 스크립트가 동작하고 있다.

 

2. 피해자가 attacker.com에 접속한다. 피해자의 브라우저는 DNS 서버에 attacker.com의 IP주소를 요청한다. 

 

3. 공격자의 DNS 서버는 attacker.com의 IP를 응답한다. 해당 페이지는 악성 스크립트 코드를 포함하고 있다. 이때 TTL 값을 짧게 지정한다.

 

4. 피해자가 공격자의 서버 attacker.com에 접속 성공한다. 악성 스크립트가 실행되면서 지속적으로 DNS 요청을 보내게 된다.

 

5. 기존에는 공격자 홈페이지의 IP주소로 DNS A레코드가 설정되어 있으나, 이를 피해자의 내부 네트워크 IP로 변경한다.

 

6. 약간의 시간이 지나고 악성 스크립트가 지속적으로 DNS 요청을 하게 된다. 

 

7. 악성 DNS 서버가 attacker.comdml IP를 변경된 IP로 응답한다. IP는 변경되었지만 도메인, 프로토콜, 포트의 변경은 없으므로 same origin이다.

 

8. 악성 스크립트로 응답된 피해자 내부 네트워크 IP 내용을 공격자에게 보내준다.

 

 

 

출처

https://m.blog.naver.com/tkdldjs35/221307513668

https://velog.io/@hunjison/DNS-Rebinding-%EA%B3%B5%EA%B2%A9

https://kookhh0827.tistory.com/entry/Webhacking-SOPSame-Origin-Policy-%EC%86%8C%EA%B0%9C%EC%99%80-DNS-rebinding%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9A%B0%ED%9A%8C%EB%B2%95%EC%8B%A4%EC%8A%B5-%ED%8F%AC%ED%95%A8