반응형

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 |