티스토리 뷰
URL : http://natas12.natas.labs.overthewire.org/
id : natas12
password : YWqo0pjpcXzSIl5NMAVxg12QxeC1w9QG
(2023. 03 기준)
파일을 업로드할 수 있는 페이지가 나타납니다.
최대 1KB 이내의 파일을 올릴 수 있는 것 같네요
문제에는 JPEG 파일만 가능한 것 처럼 되어있지만
소스코드를 확인하면 JPEG 검증에 관한 부분은 존재하지 않습니다.
시범삼아 간단한 텍스트 "hello world" 가 기재된 1.txt 파일을 업로드해봅니다.
파일명이 랜덤문자.jpg 로 바뀌어서 업로드가 되었습니다.
해당 경로로 접속을 하니 업로드된 파일에 접근이 가능하는데
내용이 엉망인 jpeg 이기 때문에 특별히 더 살펴볼만한게 없네요
이 문제는 간단한 php 웹쉘을 작성해서 풀 수 있습니다.
지난 시간에 접해본 php 의 passthru() 함수를 이용하면
웹을 통해 전달받은 사용자 명령을 해당 서버OS 로 전달할 수 있습니다.
아래와 같은 아주 간단한 내용의 php 파일을 하나 작성해주세요
전 shell.php 로 저장하겠습니다.
해당 파일을 업로드해도 jpg 로 동작하기 때문에
php 문법이 담긴 webshell 이 실행되지 않음을 확인할 수 있습니다.
코드를 살펴보니 php 함수를 통해 랜덤문자열을 생성하고
결국 html 의 input type 에서 .jpg 형식으로 업로드가 되는 것을 확인할 수 있습니다.
사실 php 는 서버에서 작동하는 서버 사이드 스크립트 이기 때문에 사용자가 그 구조와 내용을 확인할 수 없는게 맞습니다. natas 가 문제의 힌트 차원에서 별도의 view source 기능을 제공해주는 것 뿐이지요.
하지만 html 은 우리 눈에 보이는 부분이고 클라이언트 pc 에서 해석하고 표현해야하는 부분입니다.
이말은 즉 클라이언트 사이드, 웹브라우저에서 해당 데이터를 간단히 조작할 수 있음을 의미합니다.
파일선택까지 진행한 후 개발자 도구를 열어서 코드를 확인해보니 이미 업로드될 파일명이
서버를 통해 구해져서 클라이언트로 전달이 되었네요 (g4oled3170.jpg)
해당 파일의 확장자를 수정해서 제출하면 서버에 바로 반영이 될 것 같습니다.
파일명은 제가 수정으로 바꾸었으나 기존의 genRandomString(); 을 통해서 한번 더 변환되었습니다.
하지만 확장자는 php 로 그대로 유지가 됩니다.
해당 경로로 접속을 하면 전달받은 data 가 없기 때문에 실행 에러 메세지가 출력됩니다.
파라미터 전달자 ? 를 이용해서 data 변수에 ls -al 을 넣은 url 로 수정해줍니다.
웹쉘을 통해 웹서버에서 ls -al 이 실행된 결과가 잘 나옵니다.
그렇다면 cat /etc/natas_webpass/natas13 으로 다음단계 패스워드를 획득할 수 있겠네요
cat 명령어가 잘 작동해서 다음단계로의 패스워드를 획득했습니다
natas 사이트에서 통하는 취약점은 실제로 아주 오래전에는 통했을지도 몰라도
지금은 먹히지 않는게 대부분입니다.
혹시라도 natas 에서 배운 기법을 활용해서 현실세계에서 웹취약점을 탐색하는 행위는
하지 않기를 강력하게 권고합니다.
natas 는 보안 학습을 위해 제작된 사이트로 취약점 탐색 행위를 하는것을 허용하게끔 설계되었고
그 영향력이 제한적이지만 동일한 방식으로 현실에 존재하는 개인/상업 사이트에 취약점 점검을 한다면
여러분은 법적인 책임을 지게 될 수 있습니다.
국내외 대부분의 사이트들은 침입탐지 시스템 등을 운영하고 이상 탐색 행위를 추적할 수 있습니다.
이곳에서는 웹보안에 대한 기본적인 개념을 익히는데 만족하고
그 외 다양한 시도는 사전 협의된 테스트 환경이나 본인이 감당할 수 있는 실험 환경 등에서만
진행하길 바랍니다.
'수업 노트 > natas' 카테고리의 다른 글
natas14 solution (0) | 2023.05.23 |
---|---|
natas13 solution (0) | 2023.04.20 |
natas11 solution (0) | 2023.04.09 |
natas10 solution (0) | 2023.04.06 |
natas9 solution (0) | 2023.03.13 |
- Total
- Today
- Yesterday
- tr
- find
- Natas
- OpenSSL
- 리터럴
- Encode
- Strings
- 웹보안공부
- tar
- Bandit
- nc
- 웹보안
- over the wire
- natas7
- BASE64
- 32bit
- ssh
- HTTPS
- X32
- java
- SSL
- solution
- OverTheWire
- Linux
- 압축파일
- 리눅스
- grep
- gz
- bz2
- 풀이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |