반응형
[pwnable.kr] Toddler’s Bottle – collision
접속해서 파일을 확인합니다.
코드를 열어보면,
해석해보면 20byte만큼 문자열을 argv[1]에 입력 받습니다.
그리고 그걸 4byte씩 나눠서(int *) 다 더합니다.
20byte -> 4byte + 4byte + 4byte + 4byte + 4byte
그 값을 hashcode(0x21dd09ec)와 비교해서 같으면 flag를 출력하는 코드입니다.
일단 hashcode의 값이 얼마인지 확인해보겠습니다.
20byte 문자열을 5개로 나누니, 간단하게 저 hash값을 5로 나누면 나머지는 4가 나오고 몫은,
이렇습니다. 4개의 문자열은 0x6c5cec8로 채우고, 나머지 1개는 나머지 4를 더해준 0x6c5cecc로 채우겠습니다.
리틀 엔디안으로 값을 전달해주면,
payload : ./col `python –c ‘print “\xc8\xce\xc5\x06”*4 + “\xcc\xce\xc5\x06”’`
flag가 출력됩니다.
반응형
'System&Write up > Pwnable.kr' 카테고리의 다른 글
[pwnable.kr] Toddler's Bottle - random (0) | 2017.11.28 |
---|---|
[pwnable.kr] Toddler's Bottle - passcode (0) | 2017.11.24 |
[pwnable.kr] Toddler's Bottle - flag (0) | 2017.11.23 |
[pwnable.kr] Toddler's Bottle - bof (0) | 2017.11.22 |
[pwnable.kr] Toddler's Bottle - fd (0) | 2017.11.20 |