-
-
看雪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的时候, 会越界复制
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- KCTF2022春季赛 第三题 石像病毒 8855
- KCTF2022春季赛 第二题 末日邀请 16176
- KCTF2021秋季赛 第二题 迷失丛林 18803
- KCTF2020秋季赛 第十题 终焉之战 8862
- KCTF2020秋季赛 第九题 命悬一线 6462
看原图
赞赏
雪币:
留言: