sweetchip's blog


드디어 안풀리던 원인을 갑자기 생각난 것에 깨달음을 가지고 시도해봤더니 바로됬다.


기존에 취약점 찾는데 돌리는 아파치의 포트를 7777로 바꿔주고 문제를 푸니 제대로 풀린것이다.


소스 대로라면 분명히 맞을텐데 안풀려서 의아하던 차에 아파치에게 도움을 받으면 되겟다는것을 생각햇다 ㅋㅋ


힌트만 보실분은 힌트를 보세요!


힌트












////Write up

//// 2012/11/04




---------------------------------------------- php source



$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(
"

");

$kk=scandir("tmp");

for(
$i=0;$i<=count($kk);$i )
{
echo(
"$kk[$i]\n");
}

echo(
"
");





$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); // 포트는 7777

@
fputs($socket,$request); // 쏘세요!

@
fclose($socket); // 소켓클로즈

echo(
"$ck:7777
"
); // 아이피:7777

if(
$fck>=30) // 30개 이상의 파일이 생성되면
{
$kk=scandir("tmp");

for(
$i=0;$i<=count($kk);$i )
{
@
unlink("tmp/$kk[$i]"); //삭제.
}

}

?>


---------------------------------------------------------




자 위의 주석을 보시고 연구해 보세요!


일단 tmp-타임스탬프시간 으로 파일이 생성이 됩니다.


그리고 그 파일 안에 적힌 ip를 호스트로 7777포트로 해답을 쏴줍니다.


그러므로 우리가 먼저 저 파일을 선수쳐서 등록한다음 [예를들어서 13519550554를 미리 올려두고]


저시간이 일치하는 순간 f5를 누르면 자신의 아이피:7777로 패킷이 자동으로 쏴집니다.


타이밍을 잘 노려야 합니다 1초!



그렇게 타이밍을 잘캐치하시면 저렇게 쏴진 패스워드가 보입니다 저걸 인증하면 성공 :D

신고

'0x10 정보보안 > 0x16 Web' 카테고리의 다른 글

Webhacking.kr 55번 중간 풀이.  (10) 2012.11.05
webhacking.kr 49번 write up  (5) 2012.11.05
Webhacking.kr 46번 write up  (2) 2012.11.04
Webhacking.kr 37번 Write up  (2) 2012.11.04
webhacking.kr 45번 write up  (2) 2012.11.02
webhacking.kr Challenge 22 Write up.  (2) 2012.11.01

Comment 2

  • sdf
    2014.02.03 13:11 신고 수정 답글

    패킷을 받을시에 왜 아파치가 필요하죠??

    • 2014.02.03 18:26 신고 수정

      서버가 있어야 정보를 받을수 있기 떄문입니다.
      nc로도 가능하겠군요!