BUUCTF 蜘蛛侠呀 1

BUUCTF:https://buuoj.cn/challenges


文章目录

    • 题目描述:
    • 密文:
    • 解题思路:
    • flag:


相关阅读
CTF Wiki
Hello CTF
NewStar CTF
buuctf-蜘蛛侠呀
BUUCTF:蜘蛛侠呀
MISC(时间隐写)蜘蛛侠呀

在这里插入图片描述

题目描述:

将你获得的明显信息md5加密之后以flag{xxx}的格式提交。 注意:得到的 flag 请包上 flag{} 提交

密文:

下载附件,解压得到out.pcap

在这里插入图片描述


解题思路:

1、打开out.pcap,发现大量ICMP报文,携带以$$START$$开头的数据,似乎是Base64数据。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用Python脚本,提取数据。

import pyshark
import binascii

# 打开PCAP文件并设置过滤器
packets = pyshark.FileCapture('out.pcap', display_filter="icmp.type==0")

res = []

# 处理每个数据包
for each in packets:
    try:
        # 解码ICMP数据负载
        data = binascii.unhexlify(each.icmp.data).decode()
        
        # 去除头部的 $$START$$
        if data.startswith('$$START$$'):
            data = data[len('$$START$$'):]
        
        # 去除重复项
        if data not in res:
            res.append(data)
    except Exception as e:
        print(f"Error processing packet: {e}")

# 将结果写入文件
with open('out.txt', 'w') as f:
    f.write(''.join(res))

# 关闭数据包读取器
packets.close()

print('done')

得到的数据,删除头部和尾部的标识,复制到在线网站进行Base64解码。

Base64 在线解码、编码

在这里插入图片描述

解码后的数据提示是一个zip文件,另存为zip。

在这里插入图片描述

在这里插入图片描述

2、解压zip文件,得到flag.gif

在这里插入图片描述

观察该GIF,发现播放非常缓慢,猜测帧间隔存在隐写数据。这似乎是时间隐写

使用Kali下的identify工具提取数据,命令如下:

identify -format '%T' flag.gif

在这里插入图片描述

2050502050502050205020202050202020205050205020502050205050505050202050502020205020505050205020206666

得到的数据由2050组成,猜想二进制。将20替换为050替换为1,去掉尾部的6666

011011010100010000110101010111110011000101110100

将二进制数据转换为ASCII,得到

2进制到ASCII字符串在线转换工具

mD5_1t

在这里插入图片描述

mD5_1t进行md5加密,得到flag:f0f1003afe4ae8ce4aa8e8487a8ab3b6

MD5加解密工具
在这里插入图片描述


在Kali中使用tshark也可以提取数据,只需要将十六进制数据转换为字符即可。

tshark -r out.pcap -T fields -e data > data.txt

Python脚本如下:

import binascii

with open('data1.txt','r') as file:
    with open('data2.txt','wb') as data:
        for i in file.readlines():
            data.write(binascii.unhexlify(i[:-1]))

flag:

flag{f0f1003afe4ae8ce4aa8e8487a8ab3b6}

min ⁡ ( Difficulty User ) = min ⁡ ( ∑ i = 1 n ( Query i − Answer i ) 2 ) \min (\text{Difficulty}_{\text{User}}) = \min \left( \sum_{i=1}^{n} (\text{Query}_i - \text{Answer}_i)^2 \right) min(DifficultyUser)=min(i=1n(QueryiAnsweri)2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/960373.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面向长文本的多模型协作摘要架构:多LLM文本摘要方法

多LLM摘要框架在每轮对话中包含两个基本步骤:生成和评估。这些步骤在多LLM分散式摘要和集中式摘要中有所不同。在两种策略中,k个不同的LLM都会生成多样化的文本摘要。然而在评估阶段,多LLM集中式摘要方法使用单个LLM来评估摘要并选择最佳摘要,而分散式多LLM摘要则使用k个LLM进行…

c语言版贪吃蛇(Pro Max版)附源代码

1 背景 贪吃蛇是一款经典的电子游戏,最早出现在20世纪70年代的街机游戏中。游戏的核心玩法是玩家控制一条蛇在有限的空间内移动,通过吃食物来增长身体长度,同时避免撞到墙壁、障碍物或自身。随着蛇的长度增加,游戏难度逐渐提升。 …

AI软件外包需要注意什么 外包开发AI软件的关键因素是什么 如何选择AI外包开发语言

1. 定义目标与需求 首先,要明确你希望AI智能体做什么。是自动化任务、数据分析、自然语言处理,还是其他功能?明确目标可以帮助你选择合适的技术和方法。 2. 选择开发平台与工具 开发AI智能体的软件时,你需要选择适合的编程语言、…

分布式理解

分布式 如何理解分布式 狭义的分布是指,指多台PC在地理位置上分布在不同的地方。 分布式系统 分布式系**统:**多个能独立运行的计算机(称为结点)组成。各个结点利用计算机网络进行信息传递,从而实现共同的“目标或者任…

python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算

【0】基础定义 按位与运算:两个等长度二进制数上下对齐,全1取1,其余取0。按位或运算:两个等长度二进制数上下对齐,有1取1,其余取0。 按位取反运算:一个二进制数,0变1,1变0。 【1】…

CVE-2023-38831 漏洞复现:win10 压缩包挂马攻击剖析

目录 前言 漏洞介绍 漏洞原理 产生条件 影响范围 防御措施 复现步骤 环境准备 具体操作 前言 在网络安全这片没有硝烟的战场上,新型漏洞如同隐匿的暗箭,时刻威胁着我们的数字生活。其中,CVE - 2023 - 38831 这个关联 Win10 压缩包挂…

链表排序--(奇数位是升序,偶数位是降序)

题目描述 对一个单链表进行排序,但这个链表有一个特殊的结构: 奇数位是升序:链表中位于奇数位置的节点是按升序排列的。例如,如果链表的第1个节点的值是1,第3个节点的值是3,第5个节点的值是5,那…

在无sudo权限Linux上安装 Ollama 并使用 DeepSeek-R1 模型

本教程将指导你如何在 Linux 系统上安装 Ollama(一个本地运行大型语言模型的工具),并加载 DeepSeek-R1 模型。DeepSeek-R1 是一个高性能的开源语言模型,适用于多种自然语言处理任务。 DeepSeek-R1 简介 DeepSeek-R1 是 DeepSeek …

arduino学习

一、log日志 只看自己 看指定 看错误日志 二、布局 重要:新建activity时需要的配置 若一个工程中有多个activity,需要修改开启activity属性、总容器标签、debug启动activity。下面流程内截图activity不一致,根据自己新建的activity配置&am…

obsidian插件——Metadata Hider

原本是要找导出图片时显示属性的插件,奈何还没找到,反而找到了可以隐藏属性的插件。唉,人生不如意,十之八九。 说一下功能: 这个插件可以把obsidian的文档属性放在右侧显示,或者决定只显示具体几项属性&a…

SimpleFOC STM32教程10|基于STM32F103+CubeMX,速度闭环控制(有电流环)

导言 SimpleFOC STM32教程09|基于STM32F103CubeMX,ADC采样相电流 如上图所示, 增加了电流环. 效果如下: 20250123-200906 RTT 如上图所示,三相占空比依然是马鞍波。当我用手去给电机施加阻力时,PID要维持目标转速&am…

Qt 5.14.2 学习记录 —— 이십일 Qt网络和音频

文章目录 1、UDP带有界面的Udp服务器(回显服务器) 2、TCP回显服务器 3、HTTP客户端4、音频 和Linux的网络一样,Qt封装了Linux的网络API,即Socket API。网络编程是在应用层写,需要传输层支持,传输层有UDP和T…

【C语言基础】编译并运行第一个C程序

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 博客内容主要围绕: 5G/6G协议讲解 高级C语言讲解 Rust语言讲解 文章目录 编译并运行第一个C程序一、编译上面的程序二、运行上面的程序…

TikTok 推出了一款 IDE,用于快速构建 AI 应用

字节跳动(TikTok 的母公司)刚刚推出了一款名为 Trae 的新集成开发环境(IDE)。 Trae 基于 Visual Studio Code(VS Code)构建,继承了这个熟悉的平台,并加入了 AI 工具,帮助开发者更快、更轻松地构建应用——有时甚至无需编写任何代码。 如果你之前使用过 Cursor AI,T…

HarmonyOS简介:HarmonyOS核心技术理念

核心理念 一次开发、多端部署可分可合、自由流转统一生态、原生智能 一次开发、多端部署 可分可合 自由流转 自由流转可分为跨端迁移和多端协同两种情况 统一生态 支持业界主流跨平台开发框架,通过多层次的开放能力提供统一接入标准,实现三方框架快速…

STM32 按键密码系统的实现

本次基于STM32F407开发板,来实现密码系统,输入四位密码,密码正确时LED1亮,密码错误时四个LED灯双闪。 LED双闪代码 简单的逻辑,让四个LED灯先亮然后再延时一会LED灯灭,循环4此实现双闪的效果。 按键密码的…

【C++ 动态规划】1024. 视频拼接|1746

本文涉及知识点 C动态规划 LeetCode1024. 视频拼接 你将会获得一系列视频片段,这些片段来自于一项持续时长为 time 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。 使用数组 clips 描述所有的视频片段,其中 clips[i] [starti, end…

A7. Jenkins Pipeline自动化构建过程,可灵活配置多项目、多模块服务实战

服务容器化构建的环境配置构建前需要解决什么下面我们带着问题分析构建的过程:1. 如何解决jenkins执行环境与shell脚本执行环境不一致问题?2. 构建之前动态修改项目的环境变量3. 在通过容器打包时避免不了会产生比较多的不可用的镜像资源,这些资源要是不及时删除掉时会导致服…

Oracle-Java JDBC 连接超时之后的认知纠正

背景 偶然读到熊老师的文章《老熊的三分地-JDBC中语句超时与事务》了解到:JAVA代码的最后正常断开数据库连接,在默认情况下,正常断开的数据库连接会自动提交没有提交的事务。   通过文章的测试JAVA程序,可以表明,JDB…

redis的分片集群模式

redis的分片集群模式 1 主从哨兵集群的问题和分片集群特点 主从哨兵集群可应对高并发写和高可用性,但是还有2个问题没有解决: (1)海量数据存储 (2)高并发写的问题 使用分片集群可解决,分片集群…