티스토리 뷰
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 를 생성합시다.
그 다음 메뉴는 그냥 default 로 진행하면 됩니다.
그러면 temporary project 로 burp suite 가 활성화되었습니다.
proxy 메뉴에서 open brower 를 실행해줍니다
크롬 기반의 burp suite 전용 웹브라우저가 하나 열리고 burp suite 도 뭔가 내용이 나타납니다.
작업화면 줄 아래에 burp suite 전용 브라우저 아이콘도 생겨났네요(blue chrome)
이제 프락시 전용 브라우저에서 인터넷 접속을 하면
바로 바로 통신이 되는게 아니라 프락시에서 내용을 확인하고 보낼 수 있습니다.
현재는 intercept on 이 활성화 되어 있고
google.com:443 주소로 보내는 데이터를 forward 할건지 drop 할건지 묻고 있네요.
구글 접속을 위한 정상적인 통신이므로 모두 forward 를 눌러서 진행해주세요
그리고 원래의 문제 주소 http://natas4.natas.labs.overthewire.org/ 를 프락시 브라우저에 입력합시다.
이제 natas4 페이지 접속을 하기 위한 정보를 확인하며 보낼 수 있네요.
일단 접속을 위해서 모두 forward 해주세요
접속을 위한 로그인 정볼를 입력하고 forward 를 통해 페이지 결과를 확인합니다.
intercept on 상태에서는 모든 페이지를 접속할때마다 이런식으로 데이터를 확인해줘야 합니다.
귀찮으면 intercept off 로 끄고 필요할 때만 on 으로 해도 괜찮습니다.
정상적으로 아까와 같은 접속화면 입니다.
refresh page 버튼을 눌러봅시다.
웹서버에 보낼 정보를 확인해 볼까요
단순히 url 주소 말고도 다양한 정보를 보내야 합니다.
여기에 referer 이라는 필드가 보이시나요?
referer 는 이전에 방문했던 사이트 주소를 나타내는 값입니다.
아. natas4 는 referer 값을 전달받고 이것을 확인해서 내가 위치했던 이전 페이지를 알 수 있었던 거군요.
우리는 지금 이 값을 보내진 않고 프락시에 잡아두고만 있습니다.
프락시로는 값을 보내기전 정보 조작이 가능합니다.
natas4 로 시작하는 referer 값을 natas5 로 바꿔볼까요?
값을 변조하고 forward 를 눌러주세요.
주의할 점은 문제에서 요구한 http://natas5.natas.labs.overthewire.org/ 주소와 완전히 동일해야 합니다.
조금이라도 다른 값이 들어갔다면 완전히 같은 값으로 수정해주세요
request 를 잘 forward 시켰다면 접근 승인이 되었고
natas5 패스워드를 확인할 수 있습니다.
natas 사이트에서 통하는 취약점은 실제로 아주 오래전에는 통했을 지도 몰라도
지금은 먹히지 않는게 대부분입니다.
혹시라도 natas 에서 배운 기법을 활용해서 현실세계에서 웹취약점을 탐색하는 행위는
하지 않기를 강력하게 권고합니다.
natas 는 보안 학습을 위해 제작된 사이트로 취약점 탐색 행위를 하는것을 허용하게끔 설계되었고
그 영향력이 제한적이지만 동일한 방식으로 현실에 존재하는 개인/상업 사이트에 취약점 점검을 한다면
여러분은 법적인 책임을 지게 될 수 있습니다.
국내외 대부분의 사이트들은 침입탐지 시스템 등을 운영하고 이상 탐색 행위를 추적할 수 있습니다.
이곳에서는 웹보안에 대한 기본적인 개념을 익히는데 만족하고
그 외 다양한 시도는 사전 협의된 테스트 환경이나 본인이 감당할 수 있는 실험 환경 등에서만
진행하길 바랍니다.
'수업 노트 > natas' 카테고리의 다른 글
natas6 solution (0) | 2022.05.17 |
---|---|
natas5 solution (0) | 2022.05.16 |
natas3 solution (0) | 2022.05.16 |
natas2 solution (0) | 2022.05.14 |
natas1 solution (0) | 2022.05.14 |
- Total
- Today
- Yesterday
- Encode
- bz2
- Bandit
- find
- ssh
- 풀이
- 웹보안
- 압축파일
- 32bit
- OpenSSL
- tr
- grep
- java
- SSL
- over the wire
- tar
- OverTheWire
- Natas
- 웹보안공부
- Linux
- 리터럴
- 리눅스
- solution
- nc
- gz
- HTTPS
- X32
- Strings
- natas7
- BASE64
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |