와 며칠 밀렸다..ㅜㅜ
단순한 비교같다
md5 해시한 값을 ==비교하는건데 v1는 알파벳, v2는 숫자여야함
현대암호 수업이 생각났다. 문자열과 수열의 해시값이 충돌나는걸 찾으면 될 것 같았다.
근데 충돌쌍이 안나온다.
아니면 ==에서 취약점이 나도록 찾아야하는건가 해서 찾아봤다.
php에서 e뒤에 모든 글자가 숫자라면 float형으로인식한다.
0e1234 = 0 * 10^1234 = 0
1e7 = 1 * 10^7 = 10^7
이런식으로 계산이 된다.
따라서 0e뒤에 무슨 숫자가 오건 모두 0 으로 인식하기 때문에 v1, v2의 해시값이 0e뒤에 문자없이 숫자가 오는 문자열, 수열을 찾으면된다.
이건 stack overflow의 질문에 많이 나온듯 하다.
플래그가 떴다.
'보안' 카테고리의 다른 글
[wargame.kr] type confusion (0) | 2020.01.23 |
---|---|
[wargame.kr] tmitter (0) | 2020.01.20 |
[wargame.kr] DB is really GOOD (0) | 2020.01.15 |
[wargame.kr] strcmp (0) | 2020.01.14 |
[wargame.kr] md5 password (0) | 2020.01.12 |