-Path traversal 이란?
Path traversal 이란 디렉토리 순회로도 알려져 있습니다. 이 취약점은 공격자가 어플리케이션이 동작중인 서버의 임의의 파일을 읽을수 있게 됩니다. 이러한 것들 중에는:
- 어플리케이션 코드와 데이터
- 백 엔드 시스템의 자격
- 민감한 운영체제 파일
때로는 , 공격자가 임의의 파일을 수정할수도 있고 , 이후 어플리케이션의 데이터나 행동양식을 수정할수도 있게되며 , 결국 서버의 전체 컨트롤 권한을 가져가기도 합니다.
-Path traversal 를 이용한 임의의 파일 읽기
쇼핑 어플에 있는 상품의 이미지를 생각해봅시다. 그 이미지가 이 HTML 구문을 따른다고 생각해보면
<img src="/loadImage?filename=218.png">
/loadimage URL은 filename 의 매개변수를 사용하고 지정된 파일을 반환합니다.(이것을 엔드포인트 URL 이라고 합니다)
이 상황에선 이미지는 /var/www/images/ 에 저장되어 있다고 생각합니다.(실제론 다른 경로에 있을수 있음)
즉 여기서 /loadImage?filename=218.png = /var/www/images/218.png 라는것과 같습니다.
이 어플리케이션은 path traversal 공격에 취약합니다. 그 결과 이 파일의 URL 에다가
https://insecure-website.com/loadImage?filename=../../../etc/passwd 라고 넣어주게 되면
https://insecure-website.com/var/www/images/../../../etc/passwd 와 같은 경로로 이동하여서 서버의 passwd 디렉토리에 있는 파일을 보여주게 됩니다.
※<여기서 /.. 이라는 뜻은 지금 내가 위치한 디렉토리에서 뒤로가기 라는 뜻입니다! 즉 images 라는 폴더에 내가 위치하여 있는데 /.. 으로 한번 뒤로가서 /www 로 이동했지만 또 /.. 을 사용하여 뒤로가서 /var 에 왔지만 또 /.. 을 사용하여 https://insecure-website.com 로 와준 후에 여기서 /etc 폴더로 이동후 passwd 폴더로 이동했다는 뜻입니다.>
<실습>
실습 사이트로 들어왔습니다. 일단 상품 이미지가 많은것을 보실수 있습니다.
이 페이지의 코드를 보시면 /image 라는 엔드포인트를 사용하고 38.jpg라는 이미지를 가져오시는것을 볼수있습니다.
그러면 즉 /var/www/images/38.jpg 라는 뜻이니깐 38.jpg 에다가 /../../../etc/passwd 를 넣게되면 passwd 디렉토리 안에 있는 내용을 볼수 있을것 같습니다.
파란줄 되어있는 저 부분을 저렇게 바꾸어주었더니 사진이 아이콘 표시가 뜨면서 오른쪽 상단의 Sloved 표시가 떳습니다.
일단 문제가 해결되었다는건데... 저는 passwd 파일에 어떤 내용이 있는지 궁금하니 그 내용을 확인하겠습니다.
저 아이콘을 드래그 한후 새창에서 열기 를 해준후 burp Suite 프로그램을 사용한 브라우저에서 열어주었습니다.
그리고 burp suite 으로 내용을 확인해보니 ...
이런 식의 디렉토리 경로가 추출된것을 확인하실수 있습니다.
아직까지는 왜 이런 경로가 크게 문제가 되는지는 잘 모르겠으나 차차 공부하면서 알게될 것 같습니다..
'웹해킹' 카테고리의 다른 글
SQL Injection(SQLi) (0) | 2024.05.27 |
---|---|
File upload vulnerabilities (0) | 2024.01.30 |
SSRF(Server-side request forgery) (0) | 2024.01.29 |
Authentication vulnerabilities (1) | 2024.01.26 |
Access control (2) | 2024.01.25 |