본문 바로가기

wargame/pwnable.kr

[pwnable.kr] collision 풀이

반응형

collision이라길래 무슨 collision일까 했더니 MD5 해쉬 충돌을 의미하나보네요

더보기

ssh에 접근해보니 바이너리와 소스와 플래그가 맞이해주네요

코드를 봅시다.

main을 보니 

전달된 인자의 갯수가 2개 미만일 경우는 argv[0]:실행경로를 출력해주고 종료합니다.

그리고 첫번째 인자의 길이가 20이 아니면 역시 종료합니다.

그리고 첫번째 인자를 check_password() 인자로 주고 나온 결과값이 0x21DD09EC이면 플래그를 출력해주네요

check_password()를 봤더니

인자로 준 argv[1]을 시작주소로 4바이트씩 값을 보아서 총 5개의 합을 반환해줍니다.

4바이트씩 5개를 보면 딱 20바이트로 argv[1]의 길이와도 일치하게 되네요

그럼 네개는 각각 113,626,824의 값을 가지고 하나는 113,626,828의 값을 가지면 

0x21DD09EC가 나오겠네요

이 값을 어떻게 집어넣어줘야 할까요?

 다행히 파이썬이 설치가 되어있네요

이걸 통해 바로 16진수로 전달해줍시다.

0x6C5CEC8임으로 리틀엔디안으로 바꾸면 \xc8\xce\xc5\x06으로 넣어주면 되겠네요

클리어~

 

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

[pwnable.kr]flag 풀이  (0) 2021.06.11
[pwnable.kr]fd 풀이  (0) 2021.06.11
[pwnable.kr] bof 풀이  (0) 2021.06.11