hackctf 마법봉
[HackCTF] 마법봉 풀이 (100p)
문제 종류 - Web 사용한 툴 - 풀이 View Source를 눌러 코드를 확인하자. md5(240610708)과 sha1(input) 값이 같으면 풀리는 문제다. 근데 240610708을 보면 정말 정말 누가봐도 Magic Hash 인걸? 모르는 분들을 위해 Magic Hash에 대해 설명하겠다. PHP에서 ==을 이용해 값을 검사하면 취약점이 발생한다. 지수 표현식에서 앞 숫자를 0으로 하면 다음과 같이 표현이 가능하다. 0e1111 = $0\times10^{1111}$ 0e1234 = $0\times10^{1234}$ 즉, 앞이 0e면 모든 수식의 값은 0이된다. 이를 이용하면 문제를 해결할 수 있다. 그럼 이제, sha1에 magic hash를 찾아서 flag값에 넣어버리자.