拿到题目例行检查

程序是64位的程序

保护几乎全开,试运行一下程序

十分明显的堆溢出的界面,将程序放入ida中,shift+f12发现了后门程序

进入main主函数进行查看

可以看到当,v3==4869&&magic>0x1305的时候我们可以获得权限

分别进入选择的程序查看,在edit程序中

这是magic的地址

这个read_input这行没有限制v3的大小,所以这里存在堆溢出,

我们建立三个堆,第二个堆释放后在unsortedbin中。我们可以通过修改bk的值为magic的值从而使magic>0x1305

此时堆的情况

可以看到0x2090成功覆盖了bk的指针

然后在申请一个0x80大小的chunk

系统会将free掉的chunk1的指针取出来

此时magic的条件完成,

完整exp如下

def  launch_gdb()是调用gdb调试程序,方便做题

成功拿到shell

结束!!!!!!

hitcontraining_magicheap的更多相关文章

  1. [BUUCTF]PWN——hitcontraining_magicheap

    hitcontraining_magicheap 附件 步骤: 例行检查,64位程序,开启了nx和canary 本地试运行一下,经典的堆的菜单 64位ida载入,检索程序里的字符串的时候发现了后门 m ...

随机推荐

  1. docker创建mongodb并且测试代码

    mongodb docker 安装mongodb-创建用户  docker run -itd --name mongo -p 27017:27017 mongo --auth 进入数据库添加密码   ...

  2. 程序员需要达到什么水平才能顺利拿到 20k 无压力?

        程序员要拿到20k,应该达到什么水平? 1 熟悉增删改查技能,熟悉项目开发相关流程和技能. 2 能解决基本问题,分布式或比较深的问题,太难的不会不要紧,但常规的应该有项目经验. 3 简历好看些 ...

  3. Django(76)isort工具对import导入进行排序

    前言 我们在开发项目时经常会进行导包有import *格式的,还有from * import *格式的,最后就会显示的很乱,那么有没有什么工具能对导包进行一键排序呢?答案是有的,使用isort工具 i ...

  4. python并行计算之mpi4py的安装与基本使用

    技术背景 在之前的博客中我们介绍过concurrent等python多进程任务的方案,而之所以我们又在考虑MPI等方案来实现python并行计算的原因,其实是将python的计算任务与并行计算的任务调 ...

  5. 【宏组学】如何根据taxid(或taxname)快速获得taxname(或taxid)?

    需求 我有一个物种taxonomy ID的list,想获得相应的物种名,不要一个个去NCBI Taxonomy官网查.反之根据物种名list查询对应的taxid. 实现 因为之前没怎么用过,我的第一个 ...

  6. 进程和线程操作系统转载的Mark一下

    https://www.cnblogs.com/leisure_chn/p/10393707.html Linux的进程线程及调度 本文为宋宝华<Linux的进程.线程以及调度>学习笔记. ...

  7. 修复UE4编辑器,ClearLog操作导致的崩溃

    UE4 4.24.3版本,编辑器Output Log窗口中,右键--Clear Log操作很大概率会导致编辑器奔溃:解决办法: 相关文件: Engine\Source\Developer\Output ...

  8. 百页 PPT BPF 技术全览 - 深入浅出 BPF 技术

    eBPF 从创建开始,短短数年(7年),至今就已经被认为是过去 50 年来操作系统最大的变更,那么 eBPF 技术到底给我们带来了什么样的超能力,以至于得到如此高的评价? 本文从以下内容入手,对 eB ...

  9. 学习java的第十六天

    一.今日收获 1.完成了手册第二章没有验证完成的例题 2.预习了第三章的算法以及for语句与if语句的用法 二.今日难题 1.验证上出现问题,没有那么仔细. 2.第二章还有没有完全理解的问题 三.明日 ...

  10. adjust, administer

    adjust to just, exact. In measurement technology and metrology [度量衡学], calibration [校准] is the compa ...