2025青岛网络安全大赛决赛writeup(全部题解)
字数 2810 2025-09-23 19:27:38

2025青岛网络安全大赛决赛题解与知识点教学

题目附件

下载链接:https://pan.quark.cn/s/44903a187039?pwd=79es 提取码:79es

Web1

考察点

  • 网络数据包拦截与修改(BurpSuite等工具使用)
  • 基础HTTP协议理解

解题过程

  1. 环境为一个植物大战僵尸游戏,系统会不断向后台请求阳光值
  2. 使用抓包工具(如BurpSuite)拦截请求
  3. 将阳光值参数修改为极大数值(如999999)
  4. 放行数据包,游戏获胜后获得flag

教学要点

  • 抓包工具基本操作:拦截、修改、重放请求
  • 理解客户端-服务器交互机制
  • 数值验证漏洞的利用方式

Web2

考察点

  • 目录扫描与信息收集
  • 后台弱口令漏洞
  • SSRF(服务端请求伪造)
  • LFI(本地文件包含)绕过技巧

解题过程

  1. 目录扫描发现 www.zip 和 admin/login.php
  2. 访问后台使用弱口令 admin/admin 登录成功
  3. 在"友链"功能中发现漏洞点(eof.php)
  4. 分析源码发现两层不一致的过滤机制:
    • 第一层:只检查第一行,不区分大小写
    • 第二层:检查整个输入,区分大小写
  5. 构造绕过payload:%0AFILE:///flag
    • %0A(换行符)使第一行为空
    • FILE:///flag 使用大写绕过第二层检查
  6. 成功读取服务器上的/flag文件

教学要点

  • 信息收集:目录扫描、源码泄露
  • 弱口令漏洞利用
  • 多层级过滤机制的绕过方法
  • PHP流包装器的大小写特性
  • SSRF到LFI的利用链构造

密码学1

考察点

  • Beaufort密码算法
  • RSA加密体制
  • dp泄露攻击
  • Coppersmith算法应用

解题过程

加密流程分析

  1. 明文格式:DASCTF{22个大写字母}
  2. 位置移位:每个字符右移(index+1)位(模26运算)
  3. Beaufort加密:使用密钥"DASCTF"加密
  4. 转换为整数:m = bytes_to_long(FLAG_string.encode())
  5. RSA加密:生成P = m^p mod n,Q = m^q mod n,N = P*Q
  6. 泄露:n, N, dp, e等参数

解密步骤

第一步:利用dp泄露恢复P、Q

# SageMath代码
for k in range(1, 100000):
    P = (dp*e - 1) // k + 1
    if N % P == 0:
        Q = N // P
        break

第二步:Coppersmith算法求m

# SageMath代码
P = ... # 从第一步得到
Q = ... # 从第一步得到
n = ... # 原始RSA的n

R.<x> = Zmod(n)[]
f = x^2 - (P+Q)*x + P*Q
roots = f.small_roots()
m = roots[0]

第三步:逆向加密过程

# Python代码
def beaufort_decrypt(cipher, key):
    # Beaufort解密实现
    pass

def reverse_shift(enc_str):
    # 反向移位操作
    result = ""
    for i, char in enumerate(enc_str):
        if char.isupper():
            # 反向移动(i+1)位
            shifted = (ord(char) - ord('A') - (i+1)) % 26
            result += chr(shifted + ord('A'))
        else:
            result += char
    return result

# 解密流程
flag_string = long_to_bytes(m).decode()
beaufort_decrypted = beaufort_decrypt(flag_string, "DASCTF")
original_flag = reverse_shift(beaufort_decrypted)

教学要点

  • Beaufort密码算法的自反性质
  • RSA系统中dp参数的意义与泄露利用
  • Coppersmith算法在小根求解中的应用
  • 多步加密流程的逆向分析方法

密码学2

考察点

  • 小指数攻击(Low Exponent Attack)
  • 中国剩余定理(CRT)
  • 有限域上多项式求根
  • 多轮加密回溯分析

解题过程

加密流程分析

  1. 明文转为整数m
  2. 生成特殊质数p,q:满足(p-1) % e² == 0,q为p的下一个质数
  3. 计算N = p*q
  4. 加密:C = m^e mod N
  5. 重复25轮加密

解密步骤

# SageMath脚本
# 读取所有N, C, e参数
Ns = [...] # 25轮的N值
Cs = [...] # 25轮的密文值
e = 19

# 从最后一轮开始向前解密
for i in range(24, -1, -1):
    N = Ns[i]
    C = Cs[i]
    
    # 恢复p,q:在sqrt(N)附近搜索满足条件的质数
    root = isqrt(N)
    for p in range(root-1000, root+1000):
        if is_prime(p) and (p-1) % (e^2) == 0:
            if N % p == 0:
                q = N // p
                break
    
    # 在GF(p)和GF(q)上解方程
    Fp = GF(p)
    Fq = GF(q)
    
    # 求根
    roots_p = (Fp(C).nth_root(e, all=True))
    roots_q = (Fq(C).nth_root(e, all=True))
    
    # CRT组合解
    for rp in roots_p:
        for rq in roots_q:
            m = crt(int(rp), int(rq), p, q)
            # 检查m的比特长度是否符合要求
            if m.nbits() == expected_bits:
                next_plaintext = m
                break

教学要点

  • 小指数攻击的条件与限制
  • 特殊质数生成方式的密码学意义
  • 中国剩余定理在密码分析中的应用
  • 多轮加密系统的回溯解密方法
  • 有限域上多项式求根技术

Misc1

考察点

  • 文件格式分析(HEX编辑)
  • 基础编码转换

解题过程

  1. 解压得到图片文件
  2. 使用010 Editor等工具分析文件头部
  3. 发现HEX编码字符串
  4. 转换HEX到ASCII获得flag

教学要点

  • 常见文件格式结构分析
  • HEX编辑工具使用方法
  • 编码识别与转换技巧

Misc2

考察点

  • Steghide隐写工具使用
  • Base64编码解码
  • 二进制数据处理
  • 逆向工程分析
  • 异或加密破解

解题过程

  1. 解压得到图片文件
  2. 010 Editor分析发现尾部Base64字符串
  3. 解码得到二进制串:1000011010100000010101111001110011100100000110100101000001010101
  4. 图片属性中发现密钥提示:jzxcvb123
  5. Steghide提取隐写内容:steghide extract -sf x.jpeg -p jzxcvb123
  6. 获得test.zip,破解伪加密
  7. 逆向分析ELF文件中的加密逻辑:
    • 64字节循环密钥异或加密
    • 密钥:1000011010100000010101111001110011100100000110100101000001010101
  8. 将图片尾部的64位二进制与密钥异或得到:HELLo123
  9. 使用该密码解压获得flag.txt

教学要点

  • Steghide隐写工具参数与使用
  • ZIP文件伪加密识别与破解
  • ELF文件逆向分析基础
  • 异或加密原理与破解方法
  • 多步骤隐写分析流程

RE

考察点

  • 壳识别与脱壳技术(Themida/WinLicense)
  • 花指令识别与清除
  • 魔改RC4算法分析
  • 魔改TEA算法分析
  • 加密算法逆向工程

解题过程

  1. 检测到Themida/WinLicense壳,使用unlicense工具脱壳
  2. IDA分析发现花指令,手动NOP清除
  3. 分析主程序逻辑:
    • 读取输入 → loc_421290处理 → loc_4213C0处理 → 与密文比较
  4. 分析loc_421290:魔改RC4算法
    • 密钥:"thOs_IO_ke9"
    • 加密:output[i] = input[i] + (K_i ^ 0x33)
  5. 分析loc_4213C0:魔改TEA算法
    • 128-bit固定密钥
    • 33轮迭代加密
  6. 解密流程:先TEA解密再RC4解密

教学要点

  • 常见壳的特征与脱壳方法
  • 花指令的识别与清除技术
  • RC4算法原理与魔改分析
  • TEA算法原理与魔改分析
  • 复合加密系统的逆向分析方法

PWN

考察点

  • 栈溢出漏洞利用
  • Shellcode编写与构造
  • 漏洞利用链设计
  • 保护机制绕过

解题过程

  1. 检查保护机制:NX disabled, No PIE, No Canary → 栈可执行
  2. IDA分析发现栈溢出漏洞:
    • char s[24]缓冲区
    • fgets(s, 50, stdin) → 可写入49字节
  3. 构造利用payload:
    • 前24字节:shellcode(execve("/bin/sh"))
    • 填充至36字节
    • 覆盖返回地址:jmp esp指令地址
    • 添加esp调整指令:sub esp,40; call esp
  4. 发送payload获得shell

教学要点

  • 栈溢出漏洞原理与利用方法
  • Shellcode编写技术
  • 漏洞利用链设计思路
  • 保护机制识别与绕过技术
  • 利用工具(pwntools等)的使用

综合教学要点

  1. CTF解题方法论:信息收集→漏洞识别→利用构造→flag获取
  2. 多知识点融合:实际题目往往融合多个安全领域知识点
  3. 工具链使用:掌握各类安全工具的配合使用
  4. 脚本编写能力:自动化处理复杂计算或重复操作
  5. 文档记录习惯:详细记录解题过程与发现,便于复盘学习

通过系统学习上述知识点和解题技巧,可以有效提升网络安全竞赛能力和实际安全分析技能。

2025青岛网络安全大赛决赛题解与知识点教学 题目附件 下载链接:https://pan.quark.cn/s/44903a187039?pwd=79es 提取码:79es Web1 考察点 网络数据包拦截与修改(BurpSuite等工具使用) 基础HTTP协议理解 解题过程 环境为一个植物大战僵尸游戏,系统会不断向后台请求阳光值 使用抓包工具(如BurpSuite)拦截请求 将阳光值参数修改为极大数值(如999999) 放行数据包,游戏获胜后获得flag 教学要点 抓包工具基本操作:拦截、修改、重放请求 理解客户端-服务器交互机制 数值验证漏洞的利用方式 Web2 考察点 目录扫描与信息收集 后台弱口令漏洞 SSRF(服务端请求伪造) LFI(本地文件包含)绕过技巧 解题过程 目录扫描发现 www.zip 和 admin/login.php 访问后台使用弱口令 admin/admin 登录成功 在"友链"功能中发现漏洞点(eof.php) 分析源码发现两层不一致的过滤机制: 第一层:只检查第一行,不区分大小写 第二层:检查整个输入,区分大小写 构造绕过payload: %0AFILE:///flag %0A(换行符)使第一行为空 FILE:///flag 使用大写绕过第二层检查 成功读取服务器上的/flag文件 教学要点 信息收集:目录扫描、源码泄露 弱口令漏洞利用 多层级过滤机制的绕过方法 PHP流包装器的大小写特性 SSRF到LFI的利用链构造 密码学1 考察点 Beaufort密码算法 RSA加密体制 dp泄露攻击 Coppersmith算法应用 解题过程 加密流程分析 明文格式:DASCTF{22个大写字母} 位置移位:每个字符右移(index+1)位(模26运算) Beaufort加密:使用密钥"DASCTF"加密 转换为整数:m = bytes_ to_ long(FLAG_ string.encode()) RSA加密:生成P = m^p mod n,Q = m^q mod n,N = P* Q 泄露:n, N, dp, e等参数 解密步骤 第一步:利用dp泄露恢复P、Q 第二步:Coppersmith算法求m 第三步:逆向加密过程 教学要点 Beaufort密码算法的自反性质 RSA系统中dp参数的意义与泄露利用 Coppersmith算法在小根求解中的应用 多步加密流程的逆向分析方法 密码学2 考察点 小指数攻击(Low Exponent Attack) 中国剩余定理(CRT) 有限域上多项式求根 多轮加密回溯分析 解题过程 加密流程分析 明文转为整数m 生成特殊质数p,q:满足(p-1) % e² == 0,q为p的下一个质数 计算N = p* q 加密:C = m^e mod N 重复25轮加密 解密步骤 教学要点 小指数攻击的条件与限制 特殊质数生成方式的密码学意义 中国剩余定理在密码分析中的应用 多轮加密系统的回溯解密方法 有限域上多项式求根技术 Misc1 考察点 文件格式分析(HEX编辑) 基础编码转换 解题过程 解压得到图片文件 使用010 Editor等工具分析文件头部 发现HEX编码字符串 转换HEX到ASCII获得flag 教学要点 常见文件格式结构分析 HEX编辑工具使用方法 编码识别与转换技巧 Misc2 考察点 Steghide隐写工具使用 Base64编码解码 二进制数据处理 逆向工程分析 异或加密破解 解题过程 解压得到图片文件 010 Editor分析发现尾部Base64字符串 解码得到二进制串:1000011010100000010101111001110011100100000110100101000001010101 图片属性中发现密钥提示:jzxcvb123 Steghide提取隐写内容:steghide extract -sf x.jpeg -p jzxcvb123 获得test.zip,破解伪加密 逆向分析ELF文件中的加密逻辑: 64字节循环密钥异或加密 密钥:1000011010100000010101111001110011100100000110100101000001010101 将图片尾部的64位二进制与密钥异或得到:HELLo123 使用该密码解压获得flag.txt 教学要点 Steghide隐写工具参数与使用 ZIP文件伪加密识别与破解 ELF文件逆向分析基础 异或加密原理与破解方法 多步骤隐写分析流程 RE 考察点 壳识别与脱壳技术(Themida/WinLicense) 花指令识别与清除 魔改RC4算法分析 魔改TEA算法分析 加密算法逆向工程 解题过程 检测到Themida/WinLicense壳,使用unlicense工具脱壳 IDA分析发现花指令,手动NOP清除 分析主程序逻辑: 读取输入 → loc_ 421290处理 → loc_ 4213C0处理 → 与密文比较 分析loc_ 421290:魔改RC4算法 密钥:"thOs_ IO_ ke9" 加密:output[ i] = input[ i] + (K_ i ^ 0x33) 分析loc_ 4213C0:魔改TEA算法 128-bit固定密钥 33轮迭代加密 解密流程:先TEA解密再RC4解密 教学要点 常见壳的特征与脱壳方法 花指令的识别与清除技术 RC4算法原理与魔改分析 TEA算法原理与魔改分析 复合加密系统的逆向分析方法 PWN 考察点 栈溢出漏洞利用 Shellcode编写与构造 漏洞利用链设计 保护机制绕过 解题过程 检查保护机制:NX disabled, No PIE, No Canary → 栈可执行 IDA分析发现栈溢出漏洞: char s[ 24 ]缓冲区 fgets(s, 50, stdin) → 可写入49字节 构造利用payload: 前24字节:shellcode(execve("/bin/sh")) 填充至36字节 覆盖返回地址:jmp esp指令地址 添加esp调整指令:sub esp,40; call esp 发送payload获得shell 教学要点 栈溢出漏洞原理与利用方法 Shellcode编写技术 漏洞利用链设计思路 保护机制识别与绕过技术 利用工具(pwntools等)的使用 综合教学要点 CTF解题方法论 :信息收集→漏洞识别→利用构造→flag获取 多知识点融合 :实际题目往往融合多个安全领域知识点 工具链使用 :掌握各类安全工具的配合使用 脚本编写能力 :自动化处理复杂计算或重复操作 文档记录习惯 :详细记录解题过程与发现,便于复盘学习 通过系统学习上述知识点和解题技巧,可以有效提升网络安全竞赛能力和实际安全分析技能。