首页
社区
课程
招聘
看雪CTF2019Q1-第4题
发表于: 2019-3-18 22:26 2912

看雪CTF2019Q1-第4题

2019-3-18 22:26
2912

checksec apwn

    Arch:     amd64-64-little
    RELRO:    Full RELRO
    Stack:    Canary found
    NX:       NX enabled
    PIE:      PIE enabled

    Arch:     amd64-64-little
    RELRO:    Full RELRO
    Stack:    Canary found
    NX:       NX enabled
    PIE:      PIE enabled

功能
  puts("1.create singledog");
  puts("2.create luckydog");
  puts("3.edit singledog");
  puts("4.edit luckydog");
  puts("5.save singledog");
  puts("6.exit");
  puts(">>");

  puts("1.create singledog");
  puts("2.create luckydog");
  puts("3.edit singledog");
  puts("4.edit luckydog");
  puts("5.save singledog");
  puts("6.exit");
  puts(">>");

相关结构
struct single {
	char name[32];
};

struct luckydog {
	single *partner;
	char name[24];
};

single g_singles[80];
luckydog g_doubles[80];

struct single {
	char name[32];
};

struct luckydog {
	single *partner;
	char name[24];
};

single g_singles[80];
luckydog g_doubles[80];

edit singledog(只有这个有输出)
  if ( g_singles[i] )
  {
    read(0, g_singles[i], 0x20uLL);
    printf("new name: %s", g_singles[i]);
  }

  if ( g_singles[i] )
  {
    read(0, g_singles[i], 0x20uLL);
    printf("new name: %s", g_singles[i]);
  }

edit_luckydog
  if ( g_doubles[i] )
  {
    puts("Oh,luckydog,What is your new name?");
    read(0, g_doubles[i]->name, 0x18uLL);
    puts("your partner's new name");
    read(0, g_doubles[i]->partner, 0x20uLL);
  }

  if ( g_doubles[i] )
  {
    puts("Oh,luckydog,What is your new name?");
    read(0, g_doubles[i]->name, 0x18uLL);
    puts("your partner's new name");
    read(0, g_doubles[i]->partner, 0x20uLL);
  }

save_singledog, 这里single_num为80的时候, 会越界复制

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//