일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- active reconnaissance
- THM
- Cookie
- tryhackme
- php file upload
- War Game
- Leviathan
- active recon
- Cryptography
- php 로그인 페이지 만들기
- Server Side Request Forgery
- php
- OS Command Injection
- SQLi
- sql injection
- php login page
- ssrf
- BANDiT
- Reconnaissance
- over the wire
- Recon
- FTZ
- 파일 업로드 취약점
- php 파일 업로드하기
- file upload
- php To Do List
- Authentication
- access control
- privilege escalation
- overthewire
- Today
- Total
R's Hacking Daily Log
Directory Traversal - Lab(1) 본문
Lab 1 )
첫 번째 lab은 단순히 Traversal sequence를 사용해 보는 느낌으로 web application이 어떻게 동작하는지,
sequence를 사용한 결과가 어떻게 나오는 지 이해하기 가볍게 준비되어 있다.
Lab에 들어가면 뜨는 메인 페이지로, 이 중에서 아이템 하나를 클릭하면
첫 번째로는 productid가 포함된 request가 나오고 그다음으로 뜨는 packet이 위에 보이는
image를 얻어오는 Get request이다.
위의 packet을 가로챈 상태로 forward를 시키지 않고 있으면 클릭한 아이템에 대한 글만 출력되고 이미지는
아직 나오지 않는 걸 볼 수 있다.
Lab의 목표는 서버에 있는 /etc/passwd 파일 내용을 조회하는 것이기 때문에
Traversal sequence를 이용해 /etc/passwd 내용을 response에 포함하도록 request를 수정했다.
../../../etc/passwd
서버에서 기본적으로 image를 조회해 가져오는 경로는 "/var/www/images" 이기 때문에
root directory로 올라가기 위해서는 총 3번 directory 이동을 해야한다.
request에서 filename 값을 위와 같이 수정해서 forward 하면 response에 /etc/passwd 결과가 출력되는 걸 볼 수 있다.
결과적으로 이번 lab은 완료!
간단하게 sequence를 사용해보기 위한 lab이라 생각하면 될 거 같다.
Lab 2 )
이어서 두 번째 lab도 살펴보자.
이번에도 burp suite를 사용해 packet을 가로채면 productId에 관련된 request가 먼저 뜨고
그다음에 filename에 대한 request가 나온다.
repeater로 해당 packet 내용을 가져와 이것저것 해봤는 데 sequence를 사용하는 경우는
웹 어플리케이션에서 차단해서 그런지 전부 실패했다.
이번 lab에서는 sequence를 차단하는 대신 filename에 지정되는 파일이 모두 절대 경로로
적용되는 것이 아니라고 한다.
그래서 /etc/passwd만 입력해도 lab이 성공한 걸 볼 수 있다.. (OoO)
Lab 3 )
세 번째 lab에서는 웹 어플리케이션이 Traversal sequence를 제거한다고 한다.
그래서 이번 lab에서는 sequence를 한 번 더 감싸서 [....//] 형태를 사용할 것이다.
첫 번째 lab에서 입력한 내용에서 sequence만 바꿔주면 된다.
....//....//....//etc/passwd
서버 어플리케이션에서는 filename 값을 쭉 보다가
[ ....//....//....//etc/passwd ]
빨간색으로 표시한 부분은 sequence로 인식해 제거할 것이다.
하지만 sequence가 한 번 제거되고 바깥쪽에 남은 문자들이 또 하나의 sequence를 만들기 때문에
어플리케이션이 sequence를 제거하는 과정을 지나고 하면 filename의 값은
../../../etc/passwd
가 되는 것이다.
'Port Swigger > Directory Traversal' 카테고리의 다른 글
Directory Traversal - Lab(2) (0) | 2023.05.19 |
---|---|
Directory Traversal (2) (0) | 2023.05.18 |
Directory Traversal (Path Traversal) (1) (0) | 2023.05.17 |
Directory Traversal Lab (0) | 2022.11.06 |
Directory Traversal (0) | 2022.11.02 |