TPCTF25 官方 WP(pwn)

3月13日修改
3月2日创建
295
352
0
0
本文讨论了TPCTF25官方pwn题目的相关情况,包括题目背景、漏洞分析、利用方法及解题过程。关键要点包括:
1.
题目概况:作者首次作为主要出题人,构建了2道pwn题目。其中“Smart Door Lock”有10次解答,“Where is my ROP”有15次解答。
2.
Smart Door Lock:模拟arm32架构上的mqtt协议交互,利用堆上UAF和指纹泄漏实现任意地址写。存在log文件泄露、指纹爆破、添加指纹UAF等漏洞,给出了利用这些漏洞的EXP。
3.
Where is my ROP:复用qwb中的前端和认证顺序代码,采用进程间通信模式。存在AUTHORIZATION解析OOB、iperf3任意文件写、证书更新任意文件拷贝等漏洞,给出了利用这些漏洞获取flag的攻击流程和EXP 。
第一次作为主要出题人,时间紧迫,通了一周的宵,从0开始也只构建了2道pwn题目,第二题还出现了很多非预期解,为了不让大家坐牢,还专门提供了调试友好的环境。总之感谢大家包容,只要选手们玩的开心就好!!!
Smart Door Lock(10 Solves)
本题并不是出自于Real-World改编,如有雷同纯属巧合。现实中智能门锁应该也不是这么实现的,只是出自于出题人纯粹的脑洞
原来本题的目的是利用堆上的UAF,以及指纹泄漏作为信息泄露手段,实现任意地址写,最后打arm32架构上的ROP
最后考虑到场上的实现难度,以及上次qwb初赛old-fashion-apache中全场0解经历,只考到了任意地址写,改读log的文件,并实现flag的读取(其实是出题人太菜了自己没时间调堆风水)
题目描述
本题模拟了一个arm32架构上的mqtt协议交互,采用了智能门锁的使用场景。为了贴近真实环境,我们使用TLS加密的mqtt协议,这种环境下默认是可以开放端口的,基于明文的1883端口默认只在本地监听。
用户使用指纹解锁登录,并在登录成功后可以对指纹进行增删改。
用户首先通过auth_token申请了一个token,再通过这个Token提交一个指纹,服务器认证指纹通过后,会返回给用户一个session_id,通过这个session_id,就可以实现对智能门锁的各种管理操作,操作时用户向manager频道提交json表单,表单长这个样子:
sample.json
{
"session": "a1b2c3d4e5",
"request": "edit_finger",
"req_args": [
"11",
"[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]",
]
}