2026数字中国创新大赛初赛wp之俩签到题

admin 2026-04-22 05:41:38 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档分享2026数字中国创新大赛初赛两道Web签到题解题过程。题目一通过分析前端JS代码发现隐藏API接口,使用时间戳和签名验证获取数据;题目二通过修改WebSocket配置参数直接获取flag。文档提供完整解题思路和可操作代码示例,适合CTF入门学习。 综合评分: 70 文章分类: CTF,WEB安全,实战经验


两道题目的内容js在:

https://cloud.189.cn/t/67NVn2RVZrU3(访问码:ap1m)

题目一

说他简单,是因为提示的太多,文件干扰也太少,基本一眼出:

提示是有个隐藏的接口,那肯定在前端代码里面啊,然后打开前端代码,格式化发现就这么几行:

(题目文件位云盘中的api.js)

没有混淆、没有加密,直接拷贝到一个js文件,用node跑一下就可以了:

为了写这文,用ai根据这个代码美化注释了一下(其实比赛的时候直接拷贝原网站的js文件去执行即可):

async function callEncryptedAPI() {    try {        console.log('=== 开始调用加密API ===\n');                // API路径        const apiPath = '/api/v2/f7e9/data';                // 生成时间戳(秒级)        const timestamp = Math.floor(Date.now() / 1000).toString();        console.log(`1. 生成时间戳: ${timestamp}`);                // 生成签名        const signature = await generateSignature(apiPath, timestamp);        console.log(`2. 生成签名: ${signature}`);               // 构建完整URL        const fullUrl = `${SERVER_URL}${apiPath}?t=${encodeURIComponent(timestamp)}&s=${encodeURIComponent(signature)}`;        console.log(`3. 请求URL: ${fullUrl}`);                // 发送请求        console.log(`4. 发送请求到服务器...`);        const startTime = Date.now();                const response = await fetch(fullUrl, {            method: 'GET',            headers: {                'Accept': 'application/json',                'User-Agent': 'Node.js API Client/1.0'            },            timeout: 10000 // 10秒超时        });
        const responseTime = Date.now() - startTime;        console.log(`5. 服务器响应时间: ${responseTime}ms`);        console.log(`6. 响应状态: ${response.status} ${response.statusText}`);
        // 检查响应状态        if (!response.ok) {            throw new Error(`HTTP错误: ${response.status} ${response.statusText}`);        }
        // 解析响应数据        const data = await response.json();        console.log(`7. 响应数据:`);        console.log(JSON.stringify(data, null, 2));              return data;
    } catch (error) {        console.error(`\n❌ API调用失败:`);        console.error(`   错误信息: ${error.message}`);        throw error;    }}

题目二

这题是websocket,虽然少见,但一样的问题:提示太多,代码太少,混淆没有,一眼出:

(文件为云盘中的main.js)

自带注释,很快找到配置:

然后往下就找到了关键的用户名:admin

接下来就是直接修改参数,况且config还是个全局参数,直接F12打开console窗口执行就可以了:

自此,俩到签到题都结束了!

小结

这俩题确实简单,只能是签到题了,先这样吧!

本次比赛其他题目

2026数字中国创新大赛数字安全赛道writeup之web题目一


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:一只岸上的鱼 一只岸上的鱼 一只岸上的鱼《2026数字中国创新大赛初赛wp之俩签到题》

网络安全文章

文章总结: 本文介绍CyberStrikeAI这一AI原生安全测试平台,支持自然语言指令全自动完成渗透测试。该平台集成100余款安全工具,内置多种预设角色与专业
评论:0   参与:  0