cgy12306

[pwnable.kr] collision 본문

Wargame/pwnable.kr

[pwnable.kr] collision

cgy12306 2020. 1. 26. 21:36

[collision]

col.c 파일을 보자.


첫번째로 받은 인자 값이 20byte 이어야 하고, 그 값을 가지고 있는 주소를 check_password 함수로 넘긴다.

check_password 함수에서는 해당 주소를 다시 정수형 포인터에 담는다. 정수형 포인터는 배열로도 인식이 되는데 한 칸당 4byte로 인식한다. 즉, 4byte로 끊어서 모든 값을 더해 res 변수에 저장한 후 반환을 한다.

이 반환된 값을 hashcode와 비교해서 같으면 /bin/cat flag 명령어를 실행한다.

hashcode값은 0x21DD09EC이다. 10진수로 변환을 하게 되면 568134124라는 값이 나오는데 5로 나누어 떨어지지 않는다. 그래서 4를 빼준 후 5로 나누어주고 마지막 4byte에다가 4를 더해주면 된다.





'Wargame > pwnable.kr' 카테고리의 다른 글

[pwnable.kr] mistake  (0) 2020.01.26
[pwnable.kr] leg  (0) 2020.01.26
[pwnable.kr] flag  (0) 2020.01.26
[pwnable.kr] bof  (0) 2020.01.26
[pwnable.kr] fd  (0) 2020.01.26
Comments