natas4 solution
url : http://natas4.natas.labs.overthewire.org/
id : natas4
password : tKOcJIbzM4lTs8hbCmzn5Zr4434fGZQm
(2023. 03 기준)
드디어! 새로운 유형의 문제를 만나게 되었습니다.
접근이 거부됨.
natas5 주소에서 넘어온 허가자만 접속가능함. 이라네요?
refresh 버튼이 있으니까 눌러봅시다.
메세지가 약간 바뀌었습니다.
원래 "" 로 처리되었던 부분에 natas4 주소가 들어가있네요.
아 그러니까 natas5 에서 natas4 로 접근만 가능하고,
저는 natas4 에서 natas4 로 접근해서 거부당한 상황입니다.
그런데 natas5 로 패스워드는 어떻게 얻죠???
프락시 툴을 사용하면 가능합니다.
프락시에 대한 설명을 먼저 읽어보세요.
프락시는 내 PC와 인터넷 서버 사이에 위치해서 인터넷 데이터를 대신 주고 받는 역할을 하는
전용장비 또는 소프트웨어 프로그램을 지칭하는 용어입니다.
조금만 더 자세히 설명하면 인터넷 통신이라는 것은
내 PC 의 OS 의 웹브라우저 프로그램이 웹서버 까지 찾아가서 http 라는 형식의 데이터를 요청(request) 하고
웹서버는 이 요청을 받아서 본인 서버에 저장중인 웹 문서 정보를 대답(response) 해주는 방식입니다.
인터넷 또는 웹 통신이라는 것은 우리가 일방적으로 인터넷 접속만 하는 것이 아니라
사실은 정해진 방식(protocol) 대로 정보를 요청하고 대답해주는 상호작용으로 이루어지는것이지요
그런데 중간에 proxy 라는 중계기기가 있다면
내(client) 가 보내는 정보를 잠시 저장하고, 내용을 확인 또는 변조(!) 해서 서버로 보낼 수 있습니다.
서버는 변조된 정보를 전달받고 그에 맞는 대답을 해주겠죠
프락시는 이 대답을 또 다시 잠시 저장하고, 내용을 확인 또는 변조(!) 해서 나(client) 에게 보낼 수 있습니다만
이미 서버에서 내려온 정보를 한번 더 변조하는 건 큰 의미가 없습니다.
웹브라우저에서 보이는 모든 화면이 우리가 서버로부터 받은 웹문서 정보이고
이것들은 소스코드 보기로도 수정이 가능하니까요.
하지만 내 정보를 잠시 붙잡아 두었다가 서버에게 보내기전 변조하는 것은 엄청난 의미를 가지게 됩니다.
정상적인 통신으로는 발생할 수 없는 사황을 인위적으로 만들 수 있기 때문이죠.
자 이제 프락시 소프트웨어를 설치하는 것 부터 함께 공부해봅시다.
웹 보안을 위해 주로 사용하는 대표적인 프락시 도구(proxy tool) 로는 burp suite 가 있습니다.
community 버전은 무료로 충분한 기능을 활용할 수 있으니, 설치는 인터넷 검색을 참고해주세요
burp suite 와 내 웹브라우저를 연결해서 모든 접속을 proxy 를 통해 제어할 수도 있지만
burp suite 자체 내장 브라우저를 이용하면 간편하게 proxy 를 활용할 수 있습니다.
temporary project 를 생성합시다.
![](https://blog.kakaocdn.net/dn/qCY6J/btrCdHRtLyd/qYGlSg7VE6iEYvTN05KxeK/img.png)
그 다음 메뉴는 그냥 default 로 진행하면 됩니다.
그러면 temporary project 로 burp suite 가 활성화되었습니다.
![](https://blog.kakaocdn.net/dn/dZkbJy/btrCivoOQ5c/6nXzB0vEnuZk5KJGTkv0Nk/img.png)
proxy 메뉴에서 open brower 를 실행해줍니다
![](https://blog.kakaocdn.net/dn/lrsHU/btrCjFEOdxE/M4BOEMLt3LxIR11ZVDifd0/img.png)
크롬 기반의 burp suite 전용 웹브라우저가 하나 열리고 burp suite 도 뭔가 내용이 나타납니다.
작업화면 줄 아래에 burp suite 전용 브라우저 아이콘도 생겨났네요(blue chrome)
이제 프락시 전용 브라우저에서 인터넷 접속을 하면
바로 바로 통신이 되는게 아니라 프락시에서 내용을 확인하고 보낼 수 있습니다.
현재는 intercept on 이 활성화 되어 있고
google.com:443 주소로 보내는 데이터를 forward 할건지 drop 할건지 묻고 있네요.
![](https://blog.kakaocdn.net/dn/vNInX/btrB6jwMQoB/ktp45fCTQJh7fcnYKYgrdk/img.png)
구글 접속을 위한 정상적인 통신이므로 모두 forward 를 눌러서 진행해주세요
그리고 원래의 문제 주소 http://natas4.natas.labs.overthewire.org/ 를 프락시 브라우저에 입력합시다.
![](https://blog.kakaocdn.net/dn/eelJW5/btrB5Whwoth/Sl8e82XkJ2nJFpiAP2QKq1/img.png)
이제 natas4 페이지 접속을 하기 위한 정보를 확인하며 보낼 수 있네요.
일단 접속을 위해서 모두 forward 해주세요
접속을 위한 로그인 정볼를 입력하고 forward 를 통해 페이지 결과를 확인합니다.
intercept on 상태에서는 모든 페이지를 접속할때마다 이런식으로 데이터를 확인해줘야 합니다.
귀찮으면 intercept off 로 끄고 필요할 때만 on 으로 해도 괜찮습니다.
정상적으로 아까와 같은 접속화면 입니다.
![](https://blog.kakaocdn.net/dn/cqn74J/btrCjIO2TWj/tIhrNKI4a6DrOjJAObsuvk/img.png)
refresh page 버튼을 눌러봅시다.
![](https://blog.kakaocdn.net/dn/0cx5T/btrCjXFg8g7/4CpzPlgZ6Hah0ZH1zu9jD0/img.png)
웹서버에 보낼 정보를 확인해 볼까요
단순히 url 주소 말고도 다양한 정보를 보내야 합니다.
여기에 referer 이라는 필드가 보이시나요?
referer 는 이전에 방문했던 사이트 주소를 나타내는 값입니다.
아. natas4 는 referer 값을 전달받고 이것을 확인해서 내가 위치했던 이전 페이지를 알 수 있었던 거군요.
우리는 지금 이 값을 보내진 않고 프락시에 잡아두고만 있습니다.
프락시로는 값을 보내기전 정보 조작이 가능합니다.
natas4 로 시작하는 referer 값을 natas5 로 바꿔볼까요?
![](https://blog.kakaocdn.net/dn/bgeEnk/btrCbn0j4d6/yjHLJL3cEXBAnu2jr2EBI1/img.png)
값을 변조하고 forward 를 눌러주세요.
주의할 점은 문제에서 요구한 http://natas5.natas.labs.overthewire.org/ 주소와 완전히 동일해야 합니다.
조금이라도 다른 값이 들어갔다면 완전히 같은 값으로 수정해주세요
request 를 잘 forward 시켰다면 접근 승인이 되었고
natas5 패스워드를 확인할 수 있습니다.
![](https://blog.kakaocdn.net/dn/cQAPtw/btrCgJ2jSqo/5u2rNOVT9iqJNEt1VCFdek/img.png)
natas 사이트에서 통하는 취약점은 실제로 아주 오래전에는 통했을 지도 몰라도
지금은 먹히지 않는게 대부분입니다.
혹시라도 natas 에서 배운 기법을 활용해서 현실세계에서 웹취약점을 탐색하는 행위는
하지 않기를 강력하게 권고합니다.
natas 는 보안 학습을 위해 제작된 사이트로 취약점 탐색 행위를 하는것을 허용하게끔 설계되었고
그 영향력이 제한적이지만 동일한 방식으로 현실에 존재하는 개인/상업 사이트에 취약점 점검을 한다면
여러분은 법적인 책임을 지게 될 수 있습니다.
국내외 대부분의 사이트들은 침입탐지 시스템 등을 운영하고 이상 탐색 행위를 추적할 수 있습니다.
이곳에서는 웹보안에 대한 기본적인 개념을 익히는데 만족하고
그 외 다양한 시도는 사전 협의된 테스트 환경이나 본인이 감당할 수 있는 실험 환경 등에서만
진행하길 바랍니다.