김승현

[Dreamhack : Web] File Vulnerability Advanced for linux 본문

Web/Dreamhack : Web

[Dreamhack : Web] File Vulnerability Advanced for linux

kshind 2023. 2. 26. 21:07

문제

파일 취약점을 이용해서 flag를 얻는 문제의 advanced 버전이다.

함께 실습 문제라서 코드 분석은 안 하겠습니다!

풀이

접속하면 별 다른 거 없이 API index라고 출력되어 있다. 소스코드를 확인해보자.

 

/file 엔드포인트를 확인해보면 path 파라미터를 통해 ./files/ 경로에서 파일을 읽는 걸 볼  수 있는데 이 때 필터링을 거치지 않고 하는 걸 볼 수 있다. 이 부분을 이용에서 path_traversal 취약점이 발생해 파일을 다운할 수 있을 것이다. 

아마 현재 디렉토리는 var/www/에 있을 것 같으니 ../../etc/passwd로 가면 이용자들의 정보를 볼 수 있을 것 같다.

딱히 지금 할 건 없어보이니까 넘어가자.

소스코드에서 여길 보면 API_KEY를 환경변수에서 가져온다. 강의를 보면 /proc/self/envrion에서 환경변수를

가져온다고 하니까 여기로 가보자.

host3.dreamhack.games:[port]/file?path=../../proc/self/environ로 입력해줬다.

검색해보면 api_key가 존재한다. 이걸 복사해두자.

d22cb18e86fc9e23996650150461c9f794ad3a4f

저장해둔 api_key는 /admin엔드포인트에서 cmd 파라미터를 입력받는데 여기에 cmd에는 우리가 실행하고 싶은

명령어를, API_KEY에는 저장해둔 문자열을 입력하면 된다. cmd엔 일단 ls -al을 입력하자.

http://host3.dreamhack.games:19642/admin?API_KEY=d22cb18e86fc9e23996650150461c9f794ad3a4f&cmd=ls%20-al%20/

위의 주소를 입력했더니 이렇게 출력되었다.

잘보면 실행권한이 있는 flag가 있다. /flag를 입력해보자.

'Web > Dreamhack : Web' 카테고리의 다른 글

[Dreamhack : Web] XSS Filtering Bypass  (0) 2023.03.01
[Dreamhack : Web] Apache htaccess  (0) 2023.02.28
[dreamhack : Web] Command Injection Advanced  (0) 2023.02.26
[Dreamhack : Web] phpMyRedis  (0) 2023.02.26
[Dreamhack : Web] NoSQL-CouchDB  (0) 2023.02.25