본문 바로가기

보안

[wargame.kr] md5 compare

와 며칠 밀렸다..ㅜㅜ

 

단순한 비교같다

 

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