吾爱破解 2023 春节解题领红包之 Web 题解
字数 1755 2025-08-11 17:40:15

吾爱破解2023春节Web题解教学文档

活动概述

吾爱破解2023春节解题领红包活动包含三个Web题目(初级、中级、高级),每个难度需要提交4个静态flag和1个动态flag。所有线索都隐藏在指定B站视频中。

活动视频: Bilibili视频链接

初级难度解题

flag1

  • 位置: 直接显示在视频中
  • 内容: flag1{52pojiehappynewyear}

flag2

  • 位置: 视频中的二维码
  • 解法:
    1. 使用手机扫描二维码或在线解码工具
    2. 解码后网址包含flag: flag2{878a48f2}

flag3

  • 位置: 视频25秒右下角字符iodj3{06i95dig}
  • 解法:
    1. 识别为凯撒密码(字母替换)
    2. 每个字母向前偏移3位: iodjflag
    3. 最终结果: flag3{06f95afd}

flag4

  • 位置: 视频作者的签名(需鼠标悬停发现)
  • 解法:
    1. 签名内容是Base64编码
    2. 解码后得到: flag4{9cb91117}

flagA(动态)

  • 线索: 视频中给出的网站2023challenge.52pojie.cn
  • 解法:
    1. 检查域名解析,发现缺少A记录124.232.185.97
    2. 修改本地hosts文件添加该记录
    3. 访问网站,在Response Header中查找X-Dynamic-Flag
    4. 初始提示: Header X-52PoJie-Uid Not Found
    5. 添加请求头X-52PoJie-Uid(值为你的UID)

Python代码示例:

import requests

headers = {
    "X-52PoJie-Uid": "2002241",  # 替换为你的UID
    "Host": "2023challenge.52pojie.cn",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
}
url = "https://2023challenge.52pojie.cn/"
response = requests.get(url, headers=headers)
flagA = response.headers["X-Dynamic-Flag"]
print(flagA)

中级难度解题

flag5

  • 位置: 视频30秒左右的电报声
  • 解法:
    1. 识别为摩斯密码
    2. 通过音频频谱图分析更直观
    3. 结果: flag5{eait}

flag6

  • 位置: 视频开头的电话拨号声
  • 解法:
    1. 识别为双音多频信号(DTMF)
    2. 使用工具如DTMF2NUM识别
    3. 结果: flag6{590124}

flag7

  • 位置: 视频22秒上方的二进制串
  • 解法:
    1. 识别为二进制ASCII码
    2. 每8位一组转换为字符
    3. 示例: 01100110 → 'f'
    4. 完整结果: flag7{5d06be63}

flag8

  • 位置: 视频音频中隐藏
  • 解法:
    1. 使用Audacity软件打开音频
    2. 查看频谱图
    3. 结果: flag8{c394d7}

flagB(动态)

  • 线索: 域名2023challenge.52pojie.cn的TXT记录
  • 解法:
    1. 计算公式: substr(md5(uid+"_happy_new_year_"+floor(timestamp/600)),0,8)
    2. 计算当前时间戳除以600后向下取整
    3. 拼接字符串并进行MD5哈希
    4. 取前8位作为flag内容

高级难度解题

flag9

  • 位置: 视频40秒左右的杂音
  • 解法:
    1. 单独截取该段音频
    2. 反向播放
    3. 结果: flag9{21c5f8}

flag10

  • 备注: 题目描述中未提供具体解法

flag11

  • 位置: 视频底部的++++[>等字符
  • 解法:
    1. 识别为Brainfuck编程语言
    2. 使用在线工具解码
    3. 结果: flag11{63418de7}

flag12

  • 位置: 视频开头的背景图
  • 解法:
    1. 识别为图片盲水印技术
    2. 使用傅里叶变换处理图片
    3. Python代码示例:
import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('52pj.png', 0)
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
s1 = np.log(np.abs(f))
s2 = np.log(np.abs(fshift))

plt.subplot(121), plt.imshow(s1, 'gray'), plt.title('original')
plt.subplot(122), plt.imshow(s2, 'gray'), plt.title('center')
plt.show()
  1. 结果: flag12{3ac97e24}

flagC(动态)

  • 线索: 2023challenge.52pojie.cn登录页面
  • 解法:
    1. 修改页面源码移除输入框的disabled属性
    2. 输入UID后抓包,发现JWT token
    3. jwt.io解码token
    4. 修改payload中的roleuser改为admin
    5. 使用新生成的token重新提交请求获取flag

技术要点总结

  1. 密码学技术:

    • 凯撒密码
    • Base64编码
    • MD5哈希
  2. 音频分析技术:

    • 摩斯密码识别
    • DTMF解码
    • 音频频谱分析
    • 音频反向播放
  3. Web技术:

    • 域名解析与hosts修改
    • HTTP Header操作
    • JWT令牌伪造
  4. 其他技术:

    • 二进制ASCII转换
    • Brainfuck语言解码
    • 图片盲水印(傅里叶变换)

通过系统性地应用这些技术,可以完整解决所有Web题目。

吾爱破解2023春节Web题解教学文档 活动概述 吾爱破解2023春节解题领红包活动包含三个Web题目(初级、中级、高级),每个难度需要提交4个静态flag和1个动态flag。所有线索都隐藏在指定B站视频中。 活动视频 : Bilibili视频链接 初级难度解题 flag1 位置 : 直接显示在视频中 内容 : flag1{52pojiehappynewyear} flag2 位置 : 视频中的二维码 解法 : 使用手机扫描二维码或在线解码工具 解码后网址包含flag: flag2{878a48f2} flag3 位置 : 视频25秒右下角字符 iodj3{06i95dig} 解法 : 识别为凯撒密码(字母替换) 每个字母向前偏移3位: iodj → flag 最终结果: flag3{06f95afd} flag4 位置 : 视频作者的签名(需鼠标悬停发现) 解法 : 签名内容是Base64编码 解码后得到: flag4{9cb91117} flagA(动态) 线索 : 视频中给出的网站 2023challenge.52pojie.cn 解法 : 检查域名解析,发现缺少A记录 124.232.185.97 修改本地hosts文件添加该记录 访问网站,在Response Header中查找 X-Dynamic-Flag 初始提示: Header X-52PoJie-Uid Not Found 添加请求头 X-52PoJie-Uid (值为你的UID) Python代码示例 : 中级难度解题 flag5 位置 : 视频30秒左右的电报声 解法 : 识别为摩斯密码 通过音频频谱图分析更直观 结果: flag5{eait} flag6 位置 : 视频开头的电话拨号声 解法 : 识别为双音多频信号(DTMF) 使用工具如DTMF2NUM识别 结果: flag6{590124} flag7 位置 : 视频22秒上方的二进制串 解法 : 识别为二进制ASCII码 每8位一组转换为字符 示例: 01100110 → 'f' 完整结果: flag7{5d06be63} flag8 位置 : 视频音频中隐藏 解法 : 使用Audacity软件打开音频 查看频谱图 结果: flag8{c394d7} flagB(动态) 线索 : 域名 2023challenge.52pojie.cn 的TXT记录 解法 : 计算公式: substr(md5(uid+"_happy_new_year_"+floor(timestamp/600)),0,8) 计算当前时间戳除以600后向下取整 拼接字符串并进行MD5哈希 取前8位作为flag内容 高级难度解题 flag9 位置 : 视频40秒左右的杂音 解法 : 单独截取该段音频 反向播放 结果: flag9{21c5f8} flag10 备注 : 题目描述中未提供具体解法 flag11 位置 : 视频底部的 ++++[> 等字符 解法 : 识别为Brainfuck编程语言 使用在线工具解码 结果: flag11{63418de7} flag12 位置 : 视频开头的背景图 解法 : 识别为图片盲水印技术 使用傅里叶变换处理图片 Python代码示例: 结果: flag12{3ac97e24} flagC(动态) 线索 : 2023challenge.52pojie.cn 登录页面 解法 : 修改页面源码移除输入框的 disabled 属性 输入UID后抓包,发现JWT token 在 jwt.io 解码token 修改payload中的 role 从 user 改为 admin 使用新生成的token重新提交请求获取flag 技术要点总结 密码学技术 : 凯撒密码 Base64编码 MD5哈希 音频分析技术 : 摩斯密码识别 DTMF解码 音频频谱分析 音频反向播放 Web技术 : 域名解析与hosts修改 HTTP Header操作 JWT令牌伪造 其他技术 : 二进制ASCII转换 Brainfuck语言解码 图片盲水印(傅里叶变换) 通过系统性地应用这些技术,可以完整解决所有Web题目。