System&Write up/Pwnable.kr

[pwnable.kr] Toddler's Bottle - collision

Jubil 2017. 11. 21. 20:08
반응형

[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가 출력됩니다.

반응형