hitcontraining_magicheap
拿到题目例行检查

程序是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的更多相关文章
- [BUUCTF]PWN——hitcontraining_magicheap
hitcontraining_magicheap 附件 步骤: 例行检查,64位程序,开启了nx和canary 本地试运行一下,经典的堆的菜单 64位ida载入,检索程序里的字符串的时候发现了后门 m ...
随机推荐
- 【JQuery】(1)JQuery基础
JQuery基础 2019-11-02 21:11:17 by冲冲 1.jQuery简介 jQuery:轻量级."写的少,做的多".JavaScript函数库. 2.jQuer ...
- 对于cmd命令的一些常用用法
cmd命令是当今比较常见的主机命令,对于一些文件的执行和后台数据的控制有着比较有效的规范. 现在就讲几个比较常见的命令. IP查询 按住window+r 进入控制台,在输入cmd命令.在弹出的 cmd ...
- git新手配置(ios环境)
ios环境,初步了解git是个什么东西,使用过svn相关软件最佳,否则可以先补一下git的相关概念和用处,相关教程:https://www.liaoxuefeng.com/wiki/896043488 ...
- centos与ubuntu安装及相关问题解答
1.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. 答:Linus的发行版本有slackware,debian,redhat,Alpine,ArchLinux,Gentoo,LFS, ...
- Unique Path AGC 038 D
Unique Path AGC 038 D 考虑如果两个点之间只能有一个边它们就把它们缩起来,那么最后缩起来的每一块都只能是一棵树. 如果两个点之间必须不止一个边,并且在一个连通块,显然无解. 首先把 ...
- miRAN 分析以及mRNA分析
一些参考资料 http://www.360doc.com/content/17/0528/22/19913717_658086490.shtml https://www.cnblogs.com/tri ...
- MYSQL5.8-----3
666666666666666666666666 如多带有通配符的,要使用一下格式 select * from user where usename like "%1\%" ESC ...
- Linux运维工程师面试题整理
1. Nginx 反向代理,负载均衡,动静分离,工作原理及优化nginx配置反向代理. vim Nginx.confServer模块中配置Listen 80Server_name ip;在server ...
- nginx_rewrite
介绍: 和apache等web服务软件一样,rewrite的组要功能是实现RUL地址的重定向.Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的.默认 ...
- 内存管理malloc 2
malloc可以在函数指针内使用.#include <stdio.h> #include <stdlib.h> char * get_string() { //char s[] ...