首页
社区
课程
招聘
1
ctf2018-第11题
发表于: 2018-7-8 04:20 2997

ctf2018-第11题

2018-7-8 04:20
2997

  这个虽然可以溢出1字节, 但是new pig的溢出更好用


1. 初始化分配的内存(0xE20, chunk_size=0xE30)
  减小top_chunk.size的时候, 需要保证top_chunk_address+top_chunk.size是按页对齐的
  所以会用到这个chunk_size计算

2. 功能
>>  new pig(最多可以创建3个)
  大小(0xC8, chunk_size=0xD0): 
  struct pig {
    char name[0x10];
    char data[0xB8];
  }
  strncpy往name写数据, 只有pig2可以复制8个字节, 可以用来leak libc地址
  往data写的时候多写了0x10字节, 可以修改到next_chunk.size及next_chunk.fd

>> read_bytes(buf, len)
  必定以00结尾, 如果最后1字节是换行符, 替换为00, 否则在后面添加00

  这个虽然可以溢出1字节, 但是new pig的溢出更好用


>> free pig(功能正常)
 
>> print pigs(%s: name, %s: data)
  有3个pig, 只有new过的才能print
  只能print一次, 看来leak了libc地址就不能leak堆地址了


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2018-7-26 16:21 被风间仁编辑 ,原因:
收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2022-7-27 22:47
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

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