php에서도, Javascript와 같이, ==와 ===가 구분되어 있어서, ==는 값 비교를, ===는 값과 자료형이 같은지를 비교한다고 한다.
php에서는 '0e100'와 같은 구문을 e표현법이라고하여, 엄청 크거나 작은 숫자를 저렇게 표현할 수 있다고 한다.
위의 문자열 '240610708'을 md5로 해싱을 하게 되면
0E462097431906509019562988736854가 된다.
이녀석이 위의 if(md5('240610708') == sha1($input))구문에서 == 비교를 할때, php가 0E~~~를 보고, 0x10^~~인가보다 하고 판단해서, 0이된다. 그래서, 우리도 sha1로 digest 했을때, 0e~~가 되는 문자열을 찾아서 넣어주면 해싱 검사를 bypass할 수 있다.
입력하면 flag가 따진다.
'해킹 > 웹해킹' 카테고리의 다른 글
[HACKCTF] - 가위바위보 (0) | 2021.03.21 |
---|---|
[HACKCTF] Home (0) | 2021.03.21 |
[웹해킹] HACKCTF - Input Check (0) | 2021.03.14 |
[웹해킹] HACKCTF - TIME WriteUp (0) | 2021.03.14 |
[웹해킹] 자바스크립트 문법 정리 (0) | 2021.03.07 |