2025年网络安全技能竞赛“观安杯”管理运维赛 WEB/PWN wp
字数 1018 2025-08-26 22:11:35
2025年"观安杯"网络安全技能竞赛WEB/PWN题解
blindpwn题解
漏洞分析
- 输入长度限制:程序允许输入最大长度为16字节
- 漏洞类型:存在两种可能的漏洞点:
- 格式化字符串漏洞(初步测试未发现)
- 栈溢出漏洞(主要利用点)
关键发现
-
长度验证绕过:
- 输入负数长度时,程序会将有符号数转换为无符号数,导致可以输入超长字符串
- 这种整数转换漏洞是本题的关键突破点
-
栈信息泄露:
- 通过输出超长字符串,可以泄露栈上的关键数据:
- Canary值(位于偏移0x11处)
- EBP值
- 返回地址(程序地址)
- libc地址(但无偏移信息)
- 通过输出超长字符串,可以泄露栈上的关键数据:
-
DEBUG模式:
- 程序存在DEBUG模式,当触发时会泄露write的libc地址
- DEBUG模式的控制位于返回地址下方
利用步骤
-
获取关键信息:
- 通过发送超长字符串泄露canary、ebp和返回地址
- 确定程序为32位架构(通过地址特征判断)
-
触发DEBUG模式:
- 覆盖返回地址下方的DEBUG控制位,使程序进入DEBUG模式
- 获取write函数的libc地址
-
libc识别:
- 通过泄露的write地址,确定使用的libc版本为:
libc6-i386_2.35-0ubuntu3.10_amd64
- 通过泄露的write地址,确定使用的libc版本为:
-
构造ROP链:
- 由于只能执行一次输入,需要让程序再次调用vuln函数
- 通过调整返回地址(减去偏移7)实现循环调用
-
最终利用:
- 构造32位ret2libc攻击
- 获取shell
ezbank题解
黑盒测试发现
-
功能分析:
- 注册账号功能
- 转账功能
- 购买礼物功能
-
漏洞利用:
- 猜测用户ID 1为管理员账户
- 通过转账功能向自己账户转账(类似THM入门题)
- 修改转账请求中的用户ID参数
-
利用步骤:
- 注册普通账户
- 拦截转账请求
- 修改目标用户ID为1(管理员)
- 成功获取管理员权限并购买flag
babysec题解
解题步骤
-
目录扫描:
- 发现
start.sh文件,内含管理员账号密码
- 发现
-
登录利用:
- 使用获取的凭据登录系统
- 在Admin Panel中找到并获取flag
总结
本次比赛的三道题目涵盖了不同类型的漏洞和利用技术:
-
blindpwn:
- 整数转换漏洞
- 栈溢出利用
- 信息泄露
- ret2libc攻击
-
ezbank:
- 逻辑漏洞(IDOR)
- 参数篡改
-
babysec:
- 信息泄露(敏感文件)
- 弱凭据利用
这些题目展示了从简单信息泄露到复杂栈溢出利用的多种攻击技术,是很好的CTF学习案例。