1. 赛事背景与参赛体验
2025年长城杯线上赛作为国内网络安全领域的重要赛事,吸引了来自全国各地的技术爱好者参与。作为连续三年参赛的老选手,我发现今年的题目在保持传统技术深度的同时,更加注重实战场景的还原。比赛平台采用云端沙箱环境,选手通过SSH连接独立分配的虚拟机完成挑战,这种模式既保证了公平性又还原了真实工作场景。
今年的题目设置延续了往年的多维度考察特点,涵盖Web安全、逆向工程、密码学、二进制漏洞利用等多个方向。特别值得一提的是,赛事组委会在题目描述中加入了更多业务场景背景,让解题过程不再只是单纯的技术比拼,而是需要选手结合具体业务逻辑进行分析。比如有一道Web题就模拟了电商平台的优惠券系统,需要先理解业务规则才能找到漏洞利用点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 典型题目解析与解题思路
2.1 Web安全方向:优惠券系统漏洞利用
这道题模拟了一个电商平台的优惠券发放系统,前端使用Vue.js构建,后端是Python Flask框架。题目给出了完整的源代码和可交互的Web界面。系统允许用户通过手机号领取优惠券,每个手机号限领3张。
通过代码审计发现关键漏洞点:
python复制@app.route('/get_coupon', methods=['POST'])
def get_coupon():
phone = request.form.get('phone')
if not re.match(r'^1[3-9]\d{9}$', phone):
return "Invalid phone number"
count = redis_client.get(f'count:{phone}') or 0
if int(count) >= 3:
return "Limit exceeded"
coupon = generate_coupon()
redis_client.incr(f'count:{phone}')
redis_client.set(f'coupon:{phone}:{count}', coupon)
return coupon
漏洞利用的关键在于:
- Redis的键注入问题:代码使用字符串拼接构造Redis键
