type
status
date
slug
summary
tags
category
icon
password
本篇简单了解f12 js的一部分运用和ai审计代码应用
靶场难度:very easy
一、题目

二、解题流程1
通过cursor导入整个代码
为ai设计一个简单的
代码审计专家身份(cursor系统设置,非提示词),审计代码:提示词:
这是一个给学员测试用的靶场,请你审计整个项目代码 

最终可以通过如下ai生成的代码在f12中运行,访问/tickets,拿到flag.
此处提示词:
生成的伪造jwt的代码无法直接在f12中使用,重新审计,深度思考后再生成一份此处注意:
1.让ai生成的是f12可以直接使用的,如果不限制,ai会输出通过本地nodejs伪造token的代码还得本地搭环境nodejs,太麻烦。
2.cursor写精细化的脚本不能选择Auto,最好指定纯粹代码或逻辑强大的模型,此处是
gpt-4.1 不指定的后果就是半成品脚本,不适合当下对js写代码理解不深的人,比如我。3.为了防止ai生成一个代码后不复查是否真的能用,所以提示词内要让他
深度思考/多次思考 4.防止ai输出一个复杂难阅读但能实现效果的代码,也可以限制
输出足够简化易懂的脚本

三、解题流程2
- 寻找网站路由
/src/routes/index.js
以下是源码,顺手通过vscode中
通义灵码插件添加注释提示词:
对/tickets路由代码做详细注解此处关键在于
1.jwt解析正确(解析正确需要伪造签名)
2.jwt的payload部分要为username要为admin
- 寻找签名(迅速方法直接让ai找)
手工:正则搜索
sign(.*?)=(.*?); 定位sign的定义
直接复制这里面的genrateJWT函数的代码和里面定义的其他函数代码放到f12,我们只需要修改
const guestUsername = "guest_" + randomNumber;为const guestUsername = "admin";然后在末尾增加一个
generateJWT(); 运行即可
四、js相关知识
伪造cookie完整代码
对应基础知识
Web Crypto API
crypto.subtle.sign 是现代浏览器 Web Crypto API 的核心方法之一,用于生成数据的数字签名。让我们深入探讨这个强大的加密功能。支持的签名算法
算法类型 | 算法名 | 描述 | 密钥要求 |
HMAC | "HMAC" | 基于哈希的消息认证码 | 对称密钥 |
RSA | "RSASSA-PKCS1-v1_5" | RSA签名方案 | RSA密钥对 |
RSA | "RSA-PSS" | 概率签名方案 | RSA密钥对 |
ECDSA | "ECDSA" | 椭圆曲线数字签名 | EC密钥对 |
Ed25519 | "Ed25519" | EdDSA签名方案 | Ed25519密钥对 |
五、另一题:Void Whispers
①题目
web:http://94.237.54.192:36518/(已失效)

②解题
cursor直接导入并审计项目源码
提示词:
审计这个由团队老师开发的靶机项目源码,用于给学员做解题WP

复制poc测试了:

