본문 바로가기
wargame/pwnable.kr

[포너블] pwnable.kr 2 - collision

by 아메리카노와떡볶이 2022. 2. 6.
728x90
pwnable.kr 2 - collision

20byte 길이의 비밀번호를 맞추는 문제이다

내가 20byte 길이의 문자열을 입력하면 check_password 함수를 거치게 되고 그 반환값이

hashcode(= 0x21DD09EC ) 와 같아야한다

 

check_password 함수를 보면 문자열이 정수형으로 형변환이 일어난다. 즉 내가 입력한 20byte 길이의 문자열이

정수형으로 바뀌면서 4바이트씩 묶이게 되는것이다

 

따라서 for문이 의미하는 것은

내가 입력한 passcode를 4바이트씩 묶어서 5번 더하겠다는 뜻이다.

 

여기까지 정리하면 4바이트씩 5번 더했을때 0x21DD09EC 가 나오는 20byte의 passcode를 입력하면 된다.  

계산하면 4번의 0x6c5cec8 와 한번의 0x6c5cecc가 필요하다.

 

리틀엔디언 방식으로

0xc8cec56c * 4개 +0xcccec56c 를 넣어주면 된다.

./col `python -c 'print "\xcc\xce\xc5\x06" +"\xc8\xce\xc5\x06"*4'`

 

728x90

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

[포너블] pwnable.kr 6 - random  (0) 2022.02.07
[포너블] pwnable.kr 5 - passcode  (0) 2022.02.07
[포너블] pwnable.kr 4 - flag  (0) 2022.02.07
[포너블] pwnable.kr 3 - bof  (0) 2022.02.06
[포너블] pwnable.kr 1 - fd  (0) 2022.02.06

댓글