본문 바로가기
dreamhack

[Dreamhack] littlevsbig (Beginner)

by yejin_l 2024. 3. 19.
728x90

Description

사용자에게 문자열을 입력받아 메모리에 저장하는 프로그램입니다. 저장된 값이 특정 값과 일치하면 플래그를 출력합니다. 알맞은 문자열을 입력하여 플래그를 획득하세요! 플래그는 flag 파일에 있습니다.

플래그의 형식은 DH{...} 입니다.

 

풀이

step 1. netcat을 통해 해당 서버에 접속해 보았다.

 

step 2. 코드 확인

    unsigned char arr[9];
    scanf("%8s", arr);
    printf("arr  | 0x%x  0x%x  0x%x  0x%x  0x%x  0x%x  0x%x  0x%x |\n", arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7]);

    unsigned int * int_arr = (unsigned int *)arr;

    printf("arr  | 0x%x  0x%x |\n", int_arr[0], int_arr[1]);

    if(int_arr[0] == 0x64726d68 && int_arr[1] == 0x636b3a29){
        puts("Nice!");
        puts(flag);
    }
    else{
        puts("No...");
    }

0x64726d68과 0x636b3a29를 이어 입력하면 플래그가 나오는 것 같다.

 

아스키 표를 참고해서 대조해보았더니,

drmh 와 ck:) 가 나왔다. 

 

위에 flag를 넣은 결과를 보면 리틀엔디안 방식이라는 걸 알수가 있고,

"hmrd):kc"를 입력해 보았더니 플래그가 나왔다.

 

728x90

'dreamhack' 카테고리의 다른 글

[Dreamhack] phpreg (Beginner)  (0) 2024.03.27
[Dreamhack] Exercise: SSH (Beginner)  (0) 2024.03.27
[Dreamhack] Exercise: Welcome-Beginners (Beginner)  (0) 2024.03.19
[Dreamhack] Basic_Crypto1 (LEVEL 1)  (2) 2024.02.28
[Dreamhack] 64se64 (Beginner)  (0) 2024.02.28