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 ...
随机推荐
- 【JavaSE】字符编码和存储编码
字符编码和存储编码 2019-07-15 22:34:51 by冲冲 1. 英文字母和中文汉字在不同字符集编码下的字节数不同. 英文字母 字节数 : 1; 编码:GB2312 字节数 : 1; 编 ...
- C++ 编译错误记录
C++ _ZSt28__throw_bad_array_new_lengthv1 编译错误 出现场景:类似代码 vector<vector<int>> grid = {{1, ...
- 洛谷 P3287 - [SCOI2014]方伯伯的玉米田(BIT 优化 DP)
洛谷题面传送门 怎么题解区全是 2log 的做法/jk,这里提供一种 1log 并且代码更短(bushi)的做法. 首先考虑对于一个序列 \(a\) 怎样计算将其变成单调不降的最小代价.对于这类涉及区 ...
- 洛谷 P3700 - [CQOI2017]小Q的表格(找性质+数论)
洛谷题面传送门 又是一道需要一些观察的数论 hot tea-- 注意到题目中 \(b·f(a,a+b)=(a+b)·f(a,b)\) 这个柿子长得有点像求解 \(\gcd\) 的辗转相除法,因此考虑从 ...
- Nginx 编译 echo 模块
Nginx 编译 echo 模块 echo模块下载地址:https://github.com/openresty/echo-nginx-module 查看nginx已经编译的模块, nginx -V ...
- R语言与医学统计图形【4】直方图、金字塔图
R语言基础绘图系统 基础图形--直方图.金字塔图 3.直方图 参数设置及比较. op <- par(mfrow=c(2,3)) data <- rnorm(100,10,5) hist(d ...
- 金蝶EAS——我的EAS报销流程怎么能让另一个人看到呢?即如何设置流程传阅功能?设置“代理报销”
代理的话只能看到被代理人能看到的流程.设置"代理报销":应用--财务会计--费用管理--代理报销 选择报销人公司--"他人代理我报销"--选择报销人(zhaof ...
- 准确率,召回率,F值,ROC,AUC
度量表 1.准确率 (presion) p=TPTP+FP 理解为你预测对的正例数占你预测正例总量的比率,假设实际有90个正例,10个负例,你预测80(75+,5-)个正例,20(15+,5-)个负例 ...
- 日常Java 2021/11/17
应用程序转换成Applet 将图形化的Java应用程序(是指,使用AWT的应用程序和使用java程序启动器启动的程序)转换成嵌入在web页面里的applet是很简单的.下面是将应用程序转换成.Appl ...
- 零基础学习java------25--------jdbc
jdbc开发步骤图 以下要用到的products表 一. JDBC简介 补充 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口,各个数据库厂商趋势线这个接口,提 ...