jarvisoj_level2_x64
jarvisoj_level2_x64
benksihjarvisoj_level2_x64
逆向分析
依旧是先下载附件,checksec一下然后丢到ida里去看
这是一个64位的程序只开启了NX防御不允许栈执行,没有栈溢出的防御很有可能又是一个利用栈溢出的题目看看ida
main函数很简单,发现有调用system函数,看看另一个函数是干啥的
发现read函数有栈溢出,那么我们可以构造一个ROP去执行system(/bin/sh),找一下程序里有没有/bin/sh字符串。
根据buf在栈上的位置,应该填充136位。通过ROPgadget命令可以找到0x00000000004006b3 : pop rdi ; ret在64位系统里是通过寄存器向函数传参所以我们只需要将rdi里填充/bin/sh的地址再执行system函数就是执行system(/bin/sh)。
payload
写一下payload
1 | from pwn import * |
本地正常运行
远程测试
成功获取flag
评论
匿名评论隐私政策









