<?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~");
}
?>
<form method=post enctype="multipart/form-data">
<input type=file name=up><input type=submit value='upload'>
</form>
<a href=./?view_source=1>view-source</a>
</body>
</html>
파일명에서
., <, >, / 들을 필터링하고
복사해서 upload_dir에 저장하여 flag를 작성
upload_dir이름을 알아내야 할것 같음
파일명을 공백으로 보내면 index.php의 파일경로만 나온다
파일 이름을 매우 길게 해서 오류를 내봄
버프슈트로 프록시에서 잡아서 파일명을 수정
upload_dir의 경로가 나옴
다시 정상적인 파일을 upload하고
upload_dir내의 내가 upload한 파일을 찾아보면
'Wargame, CTF > webhacking.kr' 카테고리의 다른 글
Webhacking.kr 44번 (0) | 2020.01.28 |
---|---|
Webhacking.kr 43번 (0) | 2020.01.28 |
Webhacking.kr 39번 (0) | 2020.01.24 |
Webhacking.kr 36번 (0) | 2020.01.24 |
Webhacking.kr 34번 (0) | 2020.01.24 |