반응형
문제 링크
https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass
목표 & 사용 도구
목표: Path Traversal을 이용해 `/etc/passwd` 파일에 접근하는 것입니다.
사용도구: Burp Suite
문제 설명
해당 랩에는 상품 이미지를 보여주는 곳에서 path traversal 취약점이 존재한다고 합니다. 애플리케이션은 traversal sequences(상위 디렉터리 이동을 의미하는 문자열)를 차단하고 있지만 입력한 파일명을 기본 작업 디렉터리를 기준으로 하는 상대 경로로 처리한다고 합니다. 해당 랩을 풀기 위해서는 `/etc/passwd` 파일을 읽어와야 합니다.
문제 풀이
- ACCESS THE LAB을 클릭하여 랩에 접속합니다.

- 랩에 접속한 것을 확인합니다.

- 이때 Burp Suite HTTP history 탭을 확인해 보면 이미지를 가져오는 요청이 여러 개인 것을 볼 수 있습니다. (이미지 요청이 안 보이면 Filter를 OFF 상태로 바꿔야 합니다.)

- 이미지 요청 중 하나를 선택해서 Burp Suite Repeater 기능에 세팅합니다.

- `filename` 파라미터에 상위 디렉터리 이동을 이용하여 `/etc/passwd` 파일에 접근을 시도해 보면 어떠한 필터링에 의해 접근이 불가능한 것을 볼 수 있습니다.

| [설명] 유닉스 계열의 운영체제에서 상위 디렉터리 이동을 의미하는 `../` 을 루트 디렉터리인 `/` 까지 도달할 수 있도록 여러 번 사용해서 `etc/passwd` 접근이 되지 않았으므로 어떠한 필터링이 작용하고 있다고 생각해 볼 수 있습니다. |
- 이번엔 `filename` 파라미터에 절대 경로를 이용하여 `/etc/passwd` 파일에 접근을 시도하면 접근에 성공하여 `/etc/passwd` 파일 내용을 읽어오고 있는 것을 볼 수 있습니다. 따라서 Path Traversal 취약점이 존재한다는 것을 알 수 있습니다.

| [페이로드] filename=/etc/passwd [설명] 상위 디렉터리 이동을 의미하는 `../` 를 필터링되고 있다는 것을 확인했습니다. 서버에서는 상위 디렉터리 이동만을 필터링 하고 있었고 filename 파라미터로 전달받은 값을 작업 디렉터리 뒤에 붙여서 파일을 가져오는 것으로 보였습니다. 하지만 절대 경로를 사용하면 파일이 원래 작업 디렉터리가 아닌 절대 경로 그 자체를 사용했고 그 결과 `/etc/passwd` 파일에 접근이 가능했기 때문에 해당 내용들을 읽어올 수 있었습니다. |
- 랩의 상태가 solved 인지 확인하기 위해 웹 페이지로 돌아가 보면 문제에서 요구한 대로 `/etc/passwd` 내용들을 읽는 것에 성공했으므로 랩 문제를 해결하게 됩니다.

반응형
'[WEB] CTF & Wargame > PortSwigger Web Security Academy' 카테고리의 다른 글
| Lab: DOM XSS in AngularJS expression with angle brackets and double quotes HTML-encoded (0) | 2026.07.26 |
|---|---|
| Lab: Stored DOM XSS (0) | 2026.07.25 |
| Lab: Reflected XSS with event handlers and href attributes blocked (0) | 2026.07.24 |
| Lab: File path traversal, simple case (0) | 2026.07.20 |
| Lab: DOM XSS in document.write sink using source location.search (0) | 2026.07.20 |
| Lab: CSRF where token validation depends on request method (0) | 2026.07.17 |




