문제 정보
php로 작성된 파일 저장 서비스입니다.
파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다.
풀이 힌트
1. 공격 백터 파악
2. php upload 취약점
문제 풀이
![](https://blog.kakaocdn.net/dn/OVUs4/btri0Bot2Ya/IWFkwJutvKEL6jBSeYtSHk/img.png)
문제 페이지에 들어가보니, 기능이 List, Upload 밖에 없었다.
공격 백터 파악을 위해 한번 살펴보겠다.
![](https://blog.kakaocdn.net/dn/brwQvV/btriYx8aONZ/mjtWxviUibsBuFYUXDp220/img.png)
List 페이지에 들어갔는데, 아무 것도 없는 페이지가 나왔다.
예상하기엔 Upload를 하면 List에서 확인이 가능하는 것으로 보인다.
![](https://blog.kakaocdn.net/dn/xNKHl/btriYzyaJff/EjiWOO8W9AdSoXcV9qz5G0/img.png)
Upload 페이지에 들어가보니, 이름대로 Upload 기능이 있는 페이지가 나왔다.
일단 한번 드림핵 로고 이미지 파일을 업로드 해봤다.
![](https://blog.kakaocdn.net/dn/cS3UVW/btriZGp26ah/mo4mh4GkWzXON0mKYMpaDk/img.png)
![](https://blog.kakaocdn.net/dn/Rs3sD/btriYWNtSjH/7fzEIGj0uTeY9OP1onfuJk/img.png)
업로드 후에는 서버에 저장되는 경로를 출력된다는 것을 알 수 있었다.
![](https://blog.kakaocdn.net/dn/n0qpS/btriYo4LJd2/sd626s7D3H8L9Jys6SmQHK/img.png)
프록시로 어떤 이름으로 이미지가 서버에 전달이 되는지 확인봤다.
file이라는 파라미터로 전달이 되고 있었다.
![](https://blog.kakaocdn.net/dn/vDoPL/btri5lebzW7/i9rBuK1nIAKru2H8IsDCXK/img.png)
![](https://blog.kakaocdn.net/dn/q5F8Y/btri3Mi0mcA/WomO81uTiFagxIiLfYfspK/img.png)
List 페이지에 확인을 해보니, 예상대로 업로드한 파일이 저장된 경로로 링크된 a 태그가 생성되었다.
![](https://blog.kakaocdn.net/dn/bjP2mt/btriYIPuEmG/giO6Wg6yfHmFNW559jiyak/img.png)
여기까지 살펴본 나는 어떤 취약점이 있을까? 생각을 했는데, 해당 페이지가 PHP로 만들었다는 것을 보고 공략할 방법을 생각하게 되었다.
생각한 방법은 php은 ~~~.png로 되어 있어도 파일 내부에 <?php ?>으로 되어있으면 php로 해석이 된다는 것이다.
아니면, 업로드 시 확장자 검사를 안하면 바로 웹쉘 php 파일을 업로드하는 방법이다.
![](https://blog.kakaocdn.net/dn/x5WO2/btri1dH0wsk/HBN84WP9msGMcacLo2pYsk/img.png)
일단 나는 확장자 검사를 하는지 확인하지 위해 웹쉘 php 파일을 업로드하였다.
![](https://blog.kakaocdn.net/dn/3Jd4Z/btri5lSLy7D/gT0EwyGPuF2pra8d8JdJwk/img.png)
![](https://blog.kakaocdn.net/dn/G5zgq/btri0aLyaQU/zkkHFxpDrdyJTWhmVCm6pK/img.png)
웹쉘 php 파일이 업로드가 성공한 것을 보니, 업로드 시 확장자 검사를 하지 않는 것을 알 수 있었다.
![](https://blog.kakaocdn.net/dn/lK7Ur/btri5ThmMd5/2RbPbexizHYLX2dNyCkTJK/img.png)
system 함수도 잘 작동하였다.
![](https://blog.kakaocdn.net/dn/bdPXR8/btri45o7CJv/QIlscNep5uC1v0ybxpbP7K/img.png)
나는 cat 명령어를 이용하여 /flag.txt 파일을 확인하여 flag를 얻었다.
'Wargame > Dreamhack' 카테고리의 다른 글
[OverTheWire System - Bandit] Level 11 >> Level 12 (0) | 2021.10.28 |
---|---|
[Dreamhack Web - Lv 1] command-injection-1 (0) | 2021.10.27 |
[OverTheWire System - Bandit] Level 3 >> Level 4 (0) | 2021.10.26 |
[OverTheWire System - Bandit] Level 2 >> Level 3 (0) | 2021.10.26 |
[Dreamhack Web - Lv 1] csrf-1 (0) | 2021.10.25 |
Comment