이번 문제도 소스코드를 알려준다:
<?
$encodedSecret = "3d3d516343746d4d6d6c315669563362";
function encodeSecret($secret) {
return bin2hex(strrev(base64_encode($secret)));
}
if(array_key_exists("submit", $_POST)) {
if(encodeSecret($_POST['secret']) == $encodedSecret) {
print "Access granted. The password for natas9 is <censored>";
} else {
print "Wrong secret";
}
}
?>
? 값을 입력해야 다음 단계의 패스워드를 알 수 있고
?값 -> base64_encode -> strrev -> bin2hex 처리를 거친 결과가 3d3d516343746d4d6d6c315669563362 이다.
?값을 얻어내기 위해 다음과 같은 PHP 프로그램을 작성한다:
<?php
$encodedSecret = "3d3d516343746d4d6d6c315669563362";
$result = strrev(pack("H*", $encodedSecret));
echo $result;
?>
출력값인 b3ViV1lmMmtCcQ==를 base64로 decode하면 입력해야 하는 값을 찾아낼 수 있다.