728x90

Daddy told me about cool MD5 hash collision today.

I wanna do something like that too!


ssh col@pwnable.kr -p2222 (pw:guest)


--------------------------------------------------------------------------------------------------

접속



20바이트의 프로그램 파라미터를


check_password() 함수의 파라미터로 넘기고


check_password() 함수의 리턴값이 hashcode값과 같을 때 풀리는 문제이다.



check_password() 함수 내용을 보면


20바이트 문자열을 int형 포인터로 캐스팅하여 정수값으로 res에 더한다.


res값이 0x21DD09EC 값과 같게 해야 한다.


4바이트씩 총 20바이트 즉 5번을 더하므로 5로 나눈다.



0x21DD09EC - 0x6C5CEC8 * 5 = 4이므로


마지막 4바이트는 0x6C5CEC8 보다 4가 큰 0x6C5CECC를 입력한다.



 

python을 이용해서 값을 주었다.


리틀엔디안( Little Endian ) 이기 때문에 각 4바이트를 뒤집어서 입력해주어야 한다.

728x90

'ctf + wargame > pwnable.kr' 카테고리의 다른 글

[pwnable.kr] - fd  (0) 2015.07.12

+ Recent posts