본문 바로가기

[Wargame Write-up]/Pwnable.kr

[Pwnable.kr] [Toddler's Bottle] collision

putty나 XShell을 이용해 접속해보자.




fd 문제의 실행 형식과 유사해 보인다.




실행 시 인자 값은 20바이트로 구성되어야 하며, 그 인자로 check_password 함수를 돌린 값을 비교해 맞으면 flag 파일을 출력한다. 


check_password 함수에서는 입력 값을 int pointer로 바꾸고, 4바이트씩 끊어 총 다섯 번 더한 값을 반환한다. 


즉, 인자 값은 hashcode 값을 5로 나눈 값을 4번 반복한 값이다.




0x21DD09EC의 10진수 값인데, 5로 나누어 떨어지지 않는다. 

568134120을 5로 나누고, 마지막 값만 4를 더해서 넣기로 한다.




568134120을 5로 나눈 값을 16진수로 변환한 결과이다.




0x6C5CEC8을 4번, 마지막에는 4를 더한 0x6C5CECC를 넣으면 된다. 


값 저장 시 리틀 엔디안으로 입력해주자.




'[Wargame Write-up] > Pwnable.kr' 카테고리의 다른 글

[Pwnable.kr] [Toddler's Bottle] fd  (0) 2016.09.21