ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Toddler's Bottle] 2번.[collision]
    $ 시스템 해킹 $/pwnable.kr 2018. 11. 29. 17:00

    이번에 풀어볼 문제는 pwnable.kr 2번문제인 [collision] 문제 입니다.

    (* 사정상 이번에는 cmd 이용해서 문제를 풀겠습니다. )

    MD5 해시 라는 말이 보이네요

    ssh 통해서 한번 문제로 들어가 보겠습니다.

     ls -l 명령어를 통해 무슨 파일이 있는지 확인해 보겠습니다.

     col, col.c , flag 있네요

     flag 접근 불가능 하고 col.c 읽어 봐야 할거 같네요.

    Hash code 16진수로 되어있네요. 대충 코드를 살펴 보니 argc 2보다 커 야하고 길이는 20이어야 합니다.

     

    Hashcode 16진수를 10진수로 변환해 보겠습니다.

    0x21DD09EC -> 568134124

     

    Check_password함수를 보면 입력 받은 p 주소 값을 포인터형 변수 ip 집어 넣는데 ip res라는 변수에 하나씩 넣는다.

    그렇게 반환된 값이 0x21DD09EC 되야 하기 때문에 입력해야 하는 값은 0x21DD09EC 5 나눠서 더한 형태를 입력해 줘야 한다.

    for문으로 5 돌기 때문에 Hash code 5 나누어 보니까 나누어 떨어지지 않더라고요 나머지 4 남더라고요

    113626824 * 4 + 113626828 = 0x21DD09EC 16진수로 다시 바꿔보면

    6c5cec8 * 4 + 6c5cecc = 0x21DD09EC 됩니다.

     

    답이 6c5cec8 * 4 + 6c5cecc 이거인 거 같네요

     

    하지만 20byte가 아니더라고요…

    리틀 엔디안 // 엔디안 이라는 있는데 메모리 구조와 관련이 있습니다. 따로 공부 하실 분은 찾아서 공부해보시면 될 거 같아요.

    리틀 엔디안은 16진수를 거꾸로 적습니다. 위와 같이

     

    Flag daddy! I just managed to create a hash collision :) 입니다.

    '$ 시스템 해킹 $ > pwnable.kr' 카테고리의 다른 글

    [Toddler's Bottle] 5번.[passcode]  (0) 2018.12.02
    [Toddler's Bottle] 3번.[bof]  (0) 2018.12.01
    [Toddler's Bottle] 4번.[flag]  (0) 2018.11.30
    [Toddler's Bottle] 1번.[fd]  (0) 2018.11.29

    댓글

Designed by Tistory.