🗒️HTB WayWitch详解
2025-6-28
| 2025-6-28
字数 1523阅读时长 4 分钟
type
status
date
slug
summary
tags
category
icon
password
😀
本篇简单了解f12 js的一部分运用和ai审计代码应用

一、题目

notion image

二、解题流程1

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

三、解题流程2

  • 寻找网站路由/src/routes/index.js
以下是源码,顺手通过vscode中通义灵码插件添加注释
提示词:对/tickets路由代码做详细注解
此处关键在于
1.jwt解析正确(解析正确需要伪造签名)
2.jwt的payload部分要为username要为admin
 
  • 寻找签名(迅速方法直接让ai找)
手工:正则搜索sign(.*?)=(.*?); 定位sign的定义
notion image
直接复制这里面的genrateJWT函数的代码和里面定义的其他函数代码放到f12,我们只需要修改const guestUsername = "guest_" + randomNumber;const guestUsername = "admin";
然后在末尾增加一个generateJWT(); 运行即可
notion image

四、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密钥对
 
  • 靶机学习
  • 溯源学习内存马概述
    Loading...