티스토리 뷰
url : http://natas6.natas.labs.overthewire.org/
id : natas6
password : fOIvE0MDtPTgRhqmmvvAOt2EfXR6uQgR
(2023.03 기준)
시크릿 코드를 입력하라는 문제입니다.
아무 문자나 입력하면 wrong secret 이라는 메세지가 리턴되네요
시크릿 코드를 알아내야 합니다.
view sourcecode 버튼을 누르면 페이지를 구성하는 소스코드가 나타납니다.
마우스 우클릭으로 보는 소스코드와는 차이가 있습니다.
그냥 소스코드로 보면 중간에 <? 로 시작해서 ?> 끝나는 php 언어가 나타나지 않습니다.
왜 그럴까요?
우리가 웹페이지에 접속해서 보이는 화면은
내 PC(client) 가 웹서버에게 '너의 홈페이지에 방문하고 싶어' 라고 요청(request)를 먼저 하고
웹 서버는 자체적인 프로그램 로직을 수행한 후 pc 가 볼 수 있는 화면결과물만 알려준 것(response) 이기 때문입니다.
쉽게 이야기해서 아래와 같은 매커니즘이 이루어지는 것인데
(PC) 네이버에 접속 -> (PC) 네이버에 접속하고 싶습니다고 요청 -> (서버) 일반 사용자이군요. 첫화면 코드를 보내줄게요 -> (PC) 코드를 받아서 웹브라우저가 다시 보기좋게 구성함
(PC) 네이버 로그인 버튼 눌러서 로그인 정보 전송 -> (서버) 올바른 ID, PW 인지 검토 -> (서버) 해당 사용자에 맞는 my네이버 페이지 코드 전송 -> (PC) 코드를 받아서 웹브라우저가 다시 보기좋게 구성함
중요한 것은 우리가 로그인 후 보는 화면은 눈에 보이는 부분으로 구성되었다는 것입니다
해당 사용자가 실제 존재하는 지 검증하는 부분은 서버에서만 작동하고client는 알 수 없어야 합니다. (Server Side)
내 PC에서도 그런 코드가 보인다면 보안 취약점을 찾기 매우매우 쉬워지겠죠
그래서 위와 같이 자체 소스보기로는 php 문법이 보이지 않는게 맞습니다.
view sourcecode 로 php 문법이 보이는 것은 원래 안보이는 건데 문제 출제가가 일종의 힌트를 제공해준 셈이죠.
이제 힌트를 이용해서 문제를 풀어봅시다.
php 는 html 과 섞어서 사용할 수 있는 웹프로그래밍 언어입니다.
html 은 모양을 나타내는게 주 기능이고 일반 프로그래밍 언어와 같은 조건문, 반복문 등을 사용하기엔 제한이 있는데 php 를 html 중간중간 사용해서 서버 쪽에서 로직을 만들어서 수행할 수 있는 것이죠
php 문법을 알면 더욱 좋겠지만 그냥 센스있게 푸는데는 큰 지장이 없습니다.
하지만 웹보안 공부를 제대로 하실 분들은 기본적으로 알아야 할게 많구나라는 것은 알고 가야합니다.
includes 폴더 밑에 secret.inc 파일을 불러오고
우리가 입력한 secret 키 값과 비교해서 맞는 결과 / 틀린 결과를 나타내는 기능을 하는 것 같습니다.
중요한건 includes/secret.inc 파일이 존재한다는 거겠죠?
숨겨진 파일을 확인하니 코드 값이 있네요
$secret 변수에 저장된 'FOEIUWGHFEEUHOFUOIU' 값이 내가 제출한 값과 일치하면 됩니다.
다음단계로의 패스워드 7z3hEENjQtflzgnT29q7wAvMNfZdh0i9 를 획득하였습니다.
natas 사이트에서 통하는 취약점은 실제로 아주 오래전에는 통했을 지도 몰라도
지금은 먹히지 않는게 대부분입니다.
혹시라도 natas 에서 배운 기법을 활용해서 현실세계에서 웹취약점을 탐색하는 행위는
하지 않기를 강력하게 권고합니다.
natas 는 보안 학습을 위해 제작된 사이트로 취약점 탐색 행위를 하는것을 허용하게끔 설계되었고
그 영향력이 제한적이지만 동일한 방식으로 현실에 존재하는 개인/상업 사이트에 취약점 점검을 한다면
여러분은 법적인 책임을 지게 될 수 있습니다.
국내외 대부분의 사이트들은 침입탐지 시스템 등을 운영하고 이상 탐색 행위를 추적할 수 있습니다.
이곳에서는 웹보안에 대한 기본적인 개념을 익히는데 만족하고
그 외 다양한 시도는 사전 협의된 테스트 환경이나 본인이 감당할 수 있는 실험 환경 등에서만
진행하길 바랍니다.
'수업 노트 > natas' 카테고리의 다른 글
natas8 solution (0) | 2022.05.24 |
---|---|
natas7 solution (0) | 2022.05.17 |
natas5 solution (0) | 2022.05.16 |
natas4 solution (0) | 2022.05.16 |
natas3 solution (0) | 2022.05.16 |
- Total
- Today
- Yesterday
- gz
- Natas
- ssh
- BASE64
- 웹보안공부
- find
- grep
- HTTPS
- Encode
- bz2
- SSL
- solution
- 풀이
- OverTheWire
- Strings
- over the wire
- java
- 리눅스
- 압축파일
- tar
- 웹보안
- 32bit
- nc
- tr
- OpenSSL
- X32
- 리터럴
- Linux
- natas7
- Bandit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |