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 |
---|