ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dreamhack - littlevsbig
    wargame/Dreamhack 2023. 11. 25. 02:45

    [Beginner - littlevsbig - misc]

     

     

    사용자한테서 문자열을 입력받아 메모리에 저장하는 프로그램이다.

    저장된 값이 특정 값과 일치하면 플래그를 출력한다고 한다.

     

     

     

    chall.c

     

    문제 파일 다운로드 받으면 위와 같은 chall.c를 볼 수 있다.

    내가 문자열 입력하면 arr라는 배열에 넣고 각 문자를 16진수로 나타내서 출력한다.

    조건식과 일치해야 flag 획득할 수 있는 것 같다. (이때 arr에서 4바이트씩 끊어 읽어서 정수로 해석하기 때문에 내가 8바이트 입력하면 int_arr[0]은 첫 4바이트, int_arr[1]은 다음 4바이트)

     

     

     

     

     

     

     

    테스트 삼아 abcdefg 입력해보면 예상대로 문자 하나씩 16진수값 나온다.

    그런데 아랫줄에 출력된 int_arr[0]과 int_arr[1]를 보면 x86 아키텍처와 호환되는 대부분의 시스템이 그렇듯 리틀엔디안(낮은 주소에 낮은 바이트 저장)을 사용하고 있다는 것을 알 수 있다.

    즉, 내가 입력하는 문자열의 첫 4바이트와 다음 4바이트가 각각 역순으로 저장된다.

     

     

     

    따라서 드림핵에서 제공하는 툴인 cyberchef를 이용하여 조건식에 있는 0x64726d68과 0x636b3a29가 나오기 위한 문자열을 입력하면 된다.

     

     

     

     

     

    리틀엔디안을 참고하여 hmrd):kc를 입력했다.

     

     

     

    플래그를 획득했다!

     

    'wargame > Dreamhack' 카테고리의 다른 글

    Dreamhack - Basic_Forensics_1  (1) 2024.01.09
    Dreamhack - devtools-sources  (0) 2023.11.28
    Dreamhack - command-injection-1  (0) 2023.11.17
    Dreamhack - file-special-bit  (0) 2023.11.14
    Dreamhack - Exercise : Docker  (0) 2023.11.14
Designed by Tistory.