ciscn-2026-初赛-流量分析-wp
网络安全 流量分析 8

题目 1: SnakeBackdoor-1

题目描述

通过分析流量日志(neta分析日志),寻找登录凭证。

解题过程

  1. 分析日志内容,发现包含 PASS 关键字的记录。

  2. 提取出 JSON 数据:

    [+] 关键字【PASS】:username=admin&password=zxcvbnm123...
  3. 分析 Base64 编码的响应内容,确认登录成功。

    "flashes": [{"t": ["success", "..."], "is_admin": true}]
image17.png
  1. 确认密码为 zxcvbnm123

image18.png

题目 2: SnakeBackdoor-2

题目描述

通过分析日志文件,搜索敏感密钥配置。

image19.png

解题过程

  1. 在日志文件中搜索与 SECRET_KEY 相关的关键字。

  2. 找到如下记录:

    TIONS': None, 'SECRET_KEY': 'c6242af0-6891-4510-8432-e1cdf051f160&#
  3. 日志中的内容经过了 HTML 实体编码(' 代表单引号)。

  4. 还原后的内容显示 Flask 应用的配置信息被泄露。

Flag

flag{c6242af0-6891-4510-8432-e1cdf051f160}


题目 3: SnakeBackdoor-3

image20.png

题目描述

追踪 HTTP 流并解密内容。

解题过程

  1. 在 Wireshark 中追踪 HTTP 流。

  2. 发现加密或混淆的内容,进行解密处理。

image21.png

/

Flag

flag{v1p3r_5tr1k3_k3y}


题目 4: SnakeBackdoor-4

题目描述

分析流量中传输的文件,获取 Shell 权限及相关信息。

image22.png
image23.png
image24.png

解题过程

  1. 在流量中发现 shell.zip 文件并提取。

  2. 解压 shell.zip(发现有密码),提取出 shell 文件。

  3. 分析下一个数据包,发现有一条赋权指令

    image25.png
    image26.png

Flag

flag{tmppython3.13}


题目 5: SnakeBackdoor-5

题目描述

分析特定端口的 TCP 流量,寻找随机数种子(Seed)并解密 Flag。

解题过程

使用过滤器筛选流量:tcp.port == 82

image27.png

  1. 任意选择一个 TCP 包,将其转换为 16 进制分析。

  2. 找到关键的 Seed 值:0x34952046

image28.png
  1. 使用 C 语言脚本还原随机数生成过程:

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
​
int main() {
    unsigned int seed = 0x34952046;
    printf("Seed: 0x%08X (%u)\n", seed, seed);
    
    srand(seed);
    printf("Key: ");
    
    int v8[4];
    for (int i = 0; i < 4; ++i) {
        v8[i] = rand();
        unsigned char *p = (unsigned char *)&v8[i];
        printf("%02x%02x%02x%02x", p[0], p[1], p[2], p[3]);
    }
    printf("\n");
    return 0;
}

Flag

flag{ac46fb610b313b4f32fc642d8834b456}


题目 6: SnakeBackdoor-6

题目描述

分析 SSTI 注入攻击及加密流量(SM4),解密 C2 通信内容。

解题过程

  1. 首先找到 SSTI 注入攻击流量。

    • 过滤器:http.request.method == "POST" && http.request.uri contains "preview"

image30.png
  1. 观察到 preview_content 字段包含 Python 代码({{''.class...}})。

  2. 进一步分析加密流量,寻找 Flag 数据包。

    • 过滤器:tcp.port == 58782

    • 提取出加密的蓝色数据块。

image31.png
  1. 使用 Python 脚本进行 SM4 解密(利用上一题获取的 Key):

import struct
from gmssl import sm4
​
def get_key_from_seed(seed_int):
    # ... (Key generation logic based on rand)
    # Hardcoded result from previous analysis or C script
    return b'\x2c\x5a\x65\x0f\x0b\xd6\x3c\x50\x50\xc8\xf6\x6e\x67\xc5\x63\x2a'
​
def decrypt_traffic():
    seed = 0x34952046 
    key = get_key_from_seed(seed)
    print(f"密钥 (Hex): {key.hex()}")
    
    cipher_hex = "f3103429997e26868972164478d2270929532599023f03408f9218d617937e233630f40d1f7c3577382d6342898a97c4"
    ciphertext = bytes.fromhex(cipher_hex)
    
    crypt_sm4 = sm4.CryptSM4()
    crypt_sm4.set_key(key, sm4.SM4_DECRYPT)
    
    plaintext = crypt_sm4.crypt_ecb(ciphertext)
    print("-" * 30)
    try:
        print(f"(Text): {plaintext.decode('utf-8')}")
    except:
        print("解码失败")
​
if __name__ == "__main__":
    decrypt_traffic()
  1. 解密结果为:flag{6894c9ec-7l9b-46O5-82bf-4felde27738f}

  2. 字符替换混淆修正

    • 攻击者使用了 tr '1' 'l' | tr '0' 'O' 命令进行混淆。

    • 需要手动将 l 还原为 1O 还原为 0

    • 7l9b -> 719b

    • 46O5 -> 4605

    • 4felde -> 4fe1de

Flag

flag{6894c9ec-719b-4605-82bf-4fe1de27738f}

ciscn-2026-初赛-流量分析-wp
https://www.kiki1e.top/archives/2026ciscnchu-sai-liu-liang-fen-xi-wp
作者
kiki1e
发布于
更新于
许可