DoR@Hee의 끄적끄적
webhacking.kr 37번 본문
문제 첫화면 파일업로드를 이용해서 문제는 푸는 방식인거 같다.
index.phps가 보인다. 확인
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | <html> <head> <title>Challenge 37</title> </head> <body> <!-- index.phps --> <? $pw="???"; $time=time(); $f=fopen("tmp/tmp-$time","w"); fwrite($f,"127.0.0.1"); fclose($f); $fck=@file("tmp/.number"); if($fck) $fck=$fck[0]; if(!$fck) $fck=0; $fck++; $f2=fopen("tmp/.number","w"); fwrite($f2,$fck); fclose($f2); $file_nm=$HTTP_POST_FILES[upfile][name]; $file_nm=str_replace("<","",$file_nm); $file_nm=str_replace(">","",$file_nm); $file_nm=str_replace(".","",$file_nm); $file_nm=str_replace(" ","",$file_nm); if($file_nm) { $f=@fopen("tmp/$file_nm","w"); @fwrite($f,$_SERVER[REMOTE_ADDR]); @fclose($f); } echo("<pre>"); $kk=scandir("tmp"); for($i=0;$i<=count($kk);$i++) { echo("$kk[$i]\n"); } echo("</pre>"); $ck=file("tmp/tmp-$time"); $ck=$ck[0]; $request="GET /$pw HTTP/1.0\r\n"; $request.="Host: $ck\r\n"; $request.="\r\n"; $socket=@fsockopen($ck,7777,$errstr,$errno,1); @fputs($socket,$request); @fclose($socket); echo("$ck:7777<br>"); if($fck>=30) { $kk=scandir("tmp"); for($i=0;$i<=count($kk);$i++) { @unlink("tmp/$kk[$i]"); } } ?> <form method=post enctype="multipart/form-data" action=index.php> <input type=file name=upfile><input type=submit> </form> </body> </html> | cs |
해당 소스코드 이며 fsockopen를 사용하는것으로보아 소켓연결 관련 문제 인거같다. 해당문제는 31번 문제처럼
소켓연결이 안돼서 다음번에 풀이
실패
'WarGame > WebHacking.kr' 카테고리의 다른 글
webhacking.kr 38번 (0) | 2019.02.24 |
---|---|
webhacking.kr 8번 (0) | 2019.02.23 |
webhacking.kr 36번 (0) | 2019.02.22 |
webhacking.kr 35번 (0) | 2019.02.22 |
webhacking.kr 34번 (0) | 2019.02.22 |
Comments