index.phps가 있었다!
<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>
$pw를 보내주는데, 저걸 받아야 한다.
하지만, 지금 127.0.0.1로 보내는데, 우리걸로 보내게 만들어야 한다!
이미 파일이 존재해야 하는데, 미래의 tmp-어쩌구를 미리 만들어놓는다!
그리고 포트포워딩으로 패스워드를 받으면 끝!
'웹 해킹 > webhacking.kr' 카테고리의 다른 글
webhacking.kr 43번 (0) | 2018.02.12 |
---|---|
webhacking.kr 41번 (0) | 2018.02.12 |
webhacking.kr 21번-BLIND SQL INJECTION (0) | 2018.02.12 |
webhacking.kr 12번 (0) | 2018.02.12 |
webhacking.kr 10번 (0) | 2018.02.12 |