web hacking => What The Hash

 

(현재 이 글을 쓰는 시점에는 해당 문제 서버에 접속을 할 수 없는 상태이기 때문에  소스코드로만 설명을 하겠다.)

첫번째 문제의 소스는 아래와 같다.

암호화된 문자열을 md5로 복호화 하면 ‘hash’ 라는 단어가 나온다. GET 방식으로 ?hash=hash 라고 보내면 첫번째 문제는 풀린다.

 

 

 

두번째 문제이다.

이 문제는 magic hash 문제이다. 암호화된 문자열을 보면 0e 라고 시작하는 것을 볼 수 있다.

0e123는 수학으로 보면 0 * 10^123 = 0 이라고 볼 수 있다.

언어에서는 auto casting을 하고 php 는 int 를 비교하는 것을 선호하기 때문에 md5로 hash 했을때 0e 로 시작하는 값이 나오게끔 240610708 이라는 값을 넣어주면 0e462097431906509019562988736854 값이 나온다.

?hash=240610708 

 

 

 

세번째 문제이다.

이번에는 2개의 GET 값을 받게 되는데 두개의 string은 달라야 하고, md5로 hash 했을 때 같아야 하는 문제이다.

이번 문제도 위 방법과 똑같은 방식으로 풀면 다음과 같다.

?hash1=240610708&hash2=QNKCDZO

 

 

 

네번째 문제이다.

이번에는 sha1 함수를 쓰고 있다. 하지만 == 으로 비교하기 때문에 위에 했던 방식처럼 풀면 해결된다.

?hash1=240610708&hash2=10932435112

 

 

HCAMP{139be1eb99d5bca35eb69e69204950d6}