int $0x80

Volga CTF 2014 Exploit 100 본문

해킹공부/캡쳐더플래그

Volga CTF 2014 Exploit 100

cd80 cd80 2014.03.29 20:18
크리에이티브 커먼즈 라이선스
Creative Commons License


server




int __cdecl serve(int fd)

{

  unsigned int v1; // eax@1

  int v2; // ST40_4@1

  int v3; // ST40_4@1

  int v4; // edx@9

  int v5; // ecx@9

  int result; // eax@9

  int v7; // [sp+2Ch] [bp-CCh]@3

  signed int i; // [sp+30h] [bp-C8h]@3

  int randnum; // [sp+34h] [bp-C4h]@11

  int j; // [sp+38h] [bp-C0h]@11

  signed int xorkey; // [sp+3Ch] [bp-BCh]@12

  char v12[100]; // [sp+4Ch] [bp-ACh]@1

  char password[20]; // [sp+B0h] [bp-48h]@1

  int user_input; // [sp+C4h] [bp-34h]@1

  int v15; // [sp+C8h] [bp-30h]@1

  int v16; // [sp+CCh] [bp-2Ch]@1

  int v17; // [sp+D0h] [bp-28h]@1

  int v18; // [sp+D4h] [bp-24h]@1

  char s; // [sp+D8h] [bp-20h]@17

  int v20; // [sp+ECh] [bp-Ch]@1


  v20 = *MK_FP(__GS__, 20);

  v1 = time(0);

  srand(v1);

  write(fd, greeting, strlen((const char *)greeting));

  v2 = open("password.txt", 0);

  read(v2, password, 0x12u);

  close(v2);

  v3 = open("flag.txt", 0);

  v12[read(v3, v12, 98u)] = 0;

  user_input = 0;

  v15 = 0;

  v16 = 0;

  v17 = 0;

  v18 = 0;

  while ( 1 )

  {

    do

    {

      read(fd, &user_input, 0xFu);

      LOBYTE(v17) = 0;

    }

    while ( strlen((const char *)&user_input) != 12 );

    v7 = 0;

    for ( i = 0; i <= 11; ++i )

    {

      if ( password[i] == *((_BYTE *)&user_input + i) )

        ++v7;

    }

    if ( v7 == 12 )

      break;

    randnum = rand() % 1000;

    for ( j = 0; j < v7; ++j )

    {

      for ( xorkey = 1; (unsigned int)xorkey <= 0xDEADBEEE; ++xorkey )

        randnum = xorkey ^ (xorkey + randnum);

    }

    sprintf(&s, "%x\n", randnum);

    write(fd, &s, strlen(&s));

  }

  write(fd, v12, strlen(v12));

  result = *MK_FP(__GS__, 20) ^ v20;

  if ( *MK_FP(__GS__, 20) != v20 )

    __stack_chk_fail(v5, v4);

  return result;

} 


문제 소스이다

아이다가 지정한 변수명을 보기 쉽게 바꿔놨으니 소스 설명은 생략하겠다







신고

'해킹공부 > 캡쳐더플래그' 카테고리의 다른 글

ebCTF2013 pwn200 Frainbuck Interderper  (3) 2014.06.20
pCTF 2014 mtpox writeup  (2) 2014.04.13
Volga CTF 2014 Exploit 100  (0) 2014.03.29
CodeGate 2014 angry_doraemon writeup  (16) 2014.02.24
CodeGate 2014 4stone writeup  (3) 2014.02.23
CodeGate Junior 2014 nuclear 문제  (0) 2014.02.14
0 Comments
댓글쓰기 폼