ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SECUINSIDE 2016 CYKOR_00001_Patch
    CTF 2016. 7. 10. 21:37
    이것은 CGC파일이다.

    CGC는 데프콘에서 풀어봤던문제라 바로 풀긴했는데 그만큼 사람들도 이미 풀어봤던 문제고하니 빨리빨리 풀려서 긴장좀했다


    뭐일단..


    if ( write(1, (int)"What is your message?\n", 0x16u) )


    write함수로 What is your messgae?를 출력해준다.



    if ( read(0, (int)&v1, 24u, 10) )
      {
        v19 = -1;
      }
      else if ( v1 != 72 || v2 != 52 )
      {
        v19 = 7;
      }
      else if ( v3 != 80 || v4 != 80 )
      {
        v19 = 6;
      }
      else if ( v5 != 89 || v6 != 95 )
      {
        v19 = 5;
      }
      else if ( v7 != 83 || v8 != 51 )
      {
        v19 = 4;
      }
      else if ( v9 != 67 || v10 != 85 )
      {
        v19 = 3;
      }
      else if ( v11 != 73 || v12 != 78 )
      {
        v19 = 2;
      }
      else if ( v13 != 83 || v14 != 73 )
      {
        v19 = 1;
      }
      else
      {
        if ( v15 == 68 && v16 == 51 && write(1, (int)"+ Are you serious?\n", 0x13u) )
          exit(0);
        v17 = sub_80480A0();
        v19 = 0;
      }
      return v19;
    }


    read함수로 v1을 24바이트만큼 받아주는데, 엄청나게 많은 if문들이 존재한다. 하나하나 알아가보면


    H4PPY_S3CUINSID3라는 문자열이 만들어지고, 문자열이 맞다면 Are you serious? 라는 문자열을 출력해준다


    그리고 어떠한 함수를 호출하는데, 오버플로우 벡터가 존재한다


    char v1[64]; // [sp+28h] [bp-50h]@3
    for ( i = 0; i < 0x40; ++i )
        v1[i] = 0;
      if ( read(0, (int)v1, 128u, 10) )             // overflow
      {
        v4 = -1;
      }
      else
      {
        for ( i = 0; v1[i]; ++i )
          ++v2;
        if ( write(1, (int)"- Why so serious?\n", 0x12u) )
          exit(0);
        v4 = v2;
      }


    v1[0x40]을 전부 0으로 초기화해주고, 128바이트를 입력받기때문에 오버플로우가 발생한다. 




    그럼 저 128바이트를 좀 작게 수정해주자.




    80이 존재하는데, value < 50을 맞춰주면되니까 이하의 숫자로 패치해주면된다.


    cykor_00001_patch.py


    very very easy

    'CTF' 카테고리의 다른 글

    SECUINSIDE 2016 CYKOR_00002_patch  (0) 2016.07.11
    SECUINSIDE 2016 CYKOR_00001  (0) 2016.07.10
    Backdoor CTF - Enter the Matrix  (0) 2016.06.07
    TJCTF - Java sandbox  (0) 2016.05.31
    TJCTF - gravitymud  (0) 2016.05.30

    댓글

Designed by Tistory.