jarvisoj_level01解题

1.打开靶机,找到对应文件下载,转载到虚拟机中。打开终端,输出checksec level0,检查文件类型。发现是64位的ELF文件,NX保护措施被打开。

2.用ida64编译文件,得到主函数的汇编代码,按F5键转为C语言代码。

3.点击vulnerable_function,出现下图,可以看到其距离rbp80h(十六进制)个字节,双击buf,找到r所对应的字节数,是8(十六进制),也就是read函数本身覆盖的大小。

4.点击Esc,返回main函数,按shift F12,调到函数的字符串窗口,找到/bin/sh,双击得到其所在的子函数调用,是在callsystem中,在左侧列表中双击callsystem。

5.得到如下界面,复制括号中下方地址400596,将其转接到原先返回的return地址。

6.编写攻击脚本。

from pwn import*:导入pwn库;

r=remote:连接远程端口,输入靶机上的端口信息;

payload:构建攻击载荷,用垃圾数据(b:字符数据,‘a’表示字符a)覆盖read函数大小0x80及其本身的0x8个字节大小,再加上p64下的callsystem地址,以达到控制目的。

io.sendline(payload):发送所求数据并回车;

io.interactive():交互数据并获得io控制权。

7.打开终端,输入python3 XXX(编写脚本的文件名).py,运行得到控制权,输入ls,再输入cat flag,得到flag。
 

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值