首页
社区
课程
招聘
2
看雪CTF2019Q1-第9题
发表于: 2019-3-19 00:50 3352

看雪CTF2019Q1-第9题

2019-3-19 00:50
3352
checksec candcpp
1
2
3
4
5
6
    Arch:     amd64-64-little
    RELRO:    Partial RELRO
    Stack:    Canary found
    NX:       NX enabled
    PIE:      No PIE (0x400000)
    FORTIFY:  Enabled

1
2
3
4
5
6
    Arch:     amd64-64-little
    RELRO:    Partial RELRO
    Stack:    Canary found
    NX:       NX enabled
    PIE:      No PIE (0x400000)
    FORTIFY:  Enabled

功能
1
2
3
4
5
6
7
1. malloc
2. free
3. new
4. delete
5. puts
6. exit
>> 

1
2
3
4
5
6
7
1. malloc
2. free
3. new
4. delete
5. puts
6. exit
>> 

创建malloc/new
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
nblock=(len+14)/15;
g_ary_ptr[ary_index] = fn(nblock);
g_ary_block_size[ary_index] = nblock;
 
struct st_malloc_block{
    QWORD unused;
    char buf[16]; //初始化为0
};
 
struct st_malloc {
    st_malloc_block[nblock]; // << ret_ptr
};
 
struct st_new_block {
    QWORD vtbl; //delete时会判断vtbl[0], 如果不是0x400F20就会调用 
    char buf[16]; //初始化为0
};
 
struct st_new {
    QWORD nblock;
    st_new_block[nblock]; // << ret_ptr
};

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
nblock=(len+14)/15;
g_ary_ptr[ary_index] = fn(nblock);
g_ary_block_size[ary_index] = nblock;
 
struct st_malloc_block{
    QWORD unused;
    char buf[16]; //初始化为0
};
 
struct st_malloc {
    st_malloc_block[nblock]; // << ret_ptr
};
 
struct st_new_block {
    QWORD vtbl; //delete时会判断vtbl[0], 如果不是0x400F20就会调用 
    char buf[16]; //初始化为0
};
 
struct st_new {
    QWORD nblock;
    st_new_block[nblock]; // << ret_ptr
};


[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2019-3-19 00:54 被风间仁编辑 ,原因:
收藏
免费 2
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2023-1-28 04:38
xym
为你点赞~
2019-4-6 12:09
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册