File Vulnerability Advanced for linux
Description Exercise: File Vulnerability Advanced for Linux에서 실습하는 문제입니다. 문제 수정 내역 2023.07.28 Dockerfile 수정
dreamhack.io

먼저, 페이지에 접속하면 다음과 같다.

소스코드

먼저, file()을 보면 GET 방식으로 요청을 받아오는데,
'path' 파라미터를 이용해 저장되어 있는 데이터를 읽어올 수 있는 것으로 보인다.
admin()의 경우에는 key_required가 선행되어야 하고,
cmd 파라미터를 통해 subprocess 함수로 출력값을 받아와 화면에 출력 시켜주는 것으로 보인다.

이 코드는 API_KEY 파라미터에 apikey 값을 넣었을 때,
올바른 값이면 화면을 보여주고 틀리면 'Access Denied !'를 출력해준다.
exploit
먼저, 소스코드에는 파일 다운로드 취약점이 있는 것으로 보이기 때문에 파라미터를 이용해 apikey값을 가져올 것이다.
file?path=../../etc/passwd를 통해 메인 디렉터리를 파악했다.

웹 서핑을 통해 apikey는 /proc/self/environ 경로에 위치한다는 것을 알아냈다.
이번에는 저 경로로 들어가 apikey 값을 출력해보았다.

얻어낸 값(API_KEY=d22cb18e86fc9e23996650150461c9f794ad3a4f)을 통해 /admin으로 접근할 것이다.
/admin 뒤에 API_KEY 값과 cmd 파라미터를 이용했다.

cmd에 ls 명령어를 이용해서 메인 디텍터리에 flag가 있는 것을 확인할 수 있었다.

'WriteUp > 드림핵' 카테고리의 다른 글
| file-download-1 (0) | 2024.05.21 |
|---|---|
| error based sql injection (0) | 2024.05.13 |
| command-injection-chatgpt (0) | 2024.04.12 |
| what-is-my-ip (0) | 2024.04.08 |
| simple_sqli (0) | 2024.04.01 |