BUUCTF 喵喵喵 1

BUUCTF:https://buuoj.cn/challenges
在这里插入图片描述

题目描述:
喵喵喵,扫一扫 注意:得到的 flag 请包上 flag{} 提交

密文:
下载附件,解压得到一张.png图片。
在这里插入图片描述


解题思路:
1、使用StegSolve工具,在RGB的0通道发现异常,猜测存在LSB隐写。

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

打开Analyse(分析)选项卡,使用Data Extract(数据提取)选项,进行分析。

在这里插入图片描述

由PNG文件头可以看出隐写内容为PNG文件,按save Bin键保存为flag.png文件。

在这里插入图片描述

2、文件无法查看,使用010 Editor打开flag.png文件,可以看到PNG文件头有多余的字符。

PNG (png)    文件头:89 50 4E 47

在这里插入图片描述

在这里插入图片描述

将多余的字符删除,保存文件查看,得到半张二维码。

在这里插入图片描述

在这里插入图片描述

3、使用010 Editor打开,提示CRC校验错误,认为图片被修改了宽高。

在这里插入图片描述

通过爆破宽高,得到正确的宽高,然后修改图片的宽高数据,得到正确的图片。爆破所用代码如下。

import os
import binascii
import structcrcbp = open("repair.png", "rb").read()    #打开图片(修改图片路径)
for i in range(2000):for j in range(2000):data = crcbp[12:16] + \struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29]crc32 = binascii.crc32(data) & 0xffffffffif(crc32 == 0x9BF1293B):    #图片当前CRC(修改CRC)print(i, j)print('hex:', hex(i), hex(j))

得到正确的宽高值。

在这里插入图片描述

修改图片中的宽高参数,然后保存图片查看。(从左到右依次是宽度、高度、CRC校验参数)

在这里插入图片描述

在这里插入图片描述

4、使用QR research扫码,得到一个网址,下载一个压缩包flag.rar。

https://pan.baidu.com/s/1pLT2J4f

在这里插入图片描述

在这里插入图片描述

解压得到flag.txt文件,打开如下。

在这里插入图片描述

5、猜测存在NTFS文件流隐写,使用工具NtfsStreamsEditor或AlternateStreamView扫描文件所在的文件夹,发现隐藏文件。(这里使用NtfsStreamsEditor演示 )
AlternateStreamView(跳转页面后,向下滑动,下载对应的32或64位软件)

在这里插入图片描述

导出flag.pyc文件(pyc文件是由Python文件经过编译后所生成的文件),使用在线网站进行pyc文件的反编译。
据说这个网站可以,但我没有成功

得到的Python代码如下。(加入注释方便理解)

#!/usr/bin/env python
# visit http://tool.lu/pyc/ for more information
import base64# 定义一个名为encode的函数,它没有任何输入参数  
def encode():  # 明文,被'*'符号遮盖,实际内容未知  flag = '*************'  # 创建一个空的列表ciphertext,用于存储加密后的字符  ciphertext = []  # 对明文字符串flag中的每个字符进行遍历,字符的索引从0开始到flag长度-1  for i in range(len(flag)):  # 对当前字符进行异或操作,将字符的ASCII码与i进行异或  s = chr(i ^ ord(flag[i]))  # 如果当前字符的索引是偶数  if i % 2 == 0:  # 对字符的ASCII码加10,转化为数字后存储在s中  s = ord(s) + 10  # 如果当前字符的索引是奇数  else:  # 对字符的ASCII码减10,转化为数字后存储在s中  s = ord(s) - 10  # 将转化后的字符添加到ciphertext列表中  ciphertext.append(str(s))  # 返回ciphertext列表的反向排列  return ciphertext[::-1]  ciphertext = [  '96',  '65', '93',  '123','91','97','22','93','70','102','94','132','46','112','64','97','88','80','82','137','90','109','99','112']

手工编写解密脚本,代码如下。

ciphertext = ['96','65','93','123','91','97','22','93','70','102','94','132','46','112','64','97','88','80','82','137','90','109','99','112']ciphertext = ciphertext[::-1]  # 反转字符串
flag = ''for i in range(len(ciphertext)):  # 遍历数组if i % 2 == 0:  # 偶数位减10,奇数位加10s = int(ciphertext[i]) - 10else:s = int(ciphertext[i]) + 10s = s ^ i  # 将s对i进行异或操作flag += chr(s)  # 连接字符print(flag)

运行解密脚本,得到flag。

在这里插入图片描述

flag:

flag{Y@e_Cl3veR_C1Ever!}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

即时设计:设计流程图,让您的设计稿更具条理和逻辑

流程图小助手 更多内容 在设计工作中,流程图是一种重要的工具,它可以帮助设计师清晰地展示设计思路和流程,提升设计的条理性和逻辑性。今天,我们要向您推荐一款强大的设计工具,它可以帮助您轻松为设计稿设计流程图&a…

Linux网络配置

一、查看网络配置 1、查看网络接口信息ifconfig 1.查看所有活动的网络接口信息 2.查看指定网络接口信息 ifconfig 网络接口 ifconfig -a #显示所有活动及非活动的连接 ifconfig网络接口 ifconfig -a #显示所有活动及非活动的连接 主机的网络接口卡(网卡)通常称为网络接口…

SpringBoot 调用mybatis报错:Invalid bound statement (not found):

启动SpringBoot报错:Invalid bound statement (not found): 参考此文排查 命中了第6条 记录一手坑爹的Invalid bound statement (not found)(六个方面) mapper文件路径配置错误 订正以后 问题解决

【K8S 云原生】Pod资源限制、Pod容器健康检查(探针)

目录 一、docker的重启方式和K8S重启方式 1、Pod的重启方式: 2、docker的重启策略: 二、yaml文件快速生成: 三、pod的状态: 四、Pod的资源限制 1、限制的方式和种类 2、CPU的限制的格式: 五、K8S拉取镜像的策…

2023春季李宏毅机器学习笔记 03 :机器如何生成文句

资料 课程主页:https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.phpGithub:https://github.com/Fafa-DL/Lhy_Machine_LearningB站课程:https://space.bilibili.com/253734135/channel/collectiondetail?sid2014800 一、大语言模型的两种…

八大算法排序@归并排序(C语言版本)

目录 归并排序概念算法思想第一步第二步第三步 算法步骤代码实现代码1代码优化 时间复杂度空间复杂度特性总结 归并排序 概念 归并排序(Merge Sort)是一种基于分治策略的经典排序算法。它的基本思想是将待排序的数组划分成两个子数组,分别对…

Ubuntu 实时查看显存调用命令 free 及命令详解与原理说明(全)

Ubuntu 实时查看显存调用命令 free 及详解 文章目录 Ubuntu 实时查看显存调用命令 free 及详解1 free 作用1.1 语法:1.2 单独显示例子1.3 组合显示例子 2 输出介绍3 原理解释3.1 buff / cache(即 buffer / cache)3.1.1 buffer 缓冲区3.1.2 ca…

FineReport--学习笔记

1 项目介绍 1.1 项目背景 某互联网电商公司拥有超过50万门店用户和8000店铺用户,店铺主要以卖家身份进行销售,门店以买家身份进行购买,每天会产生许多销售订单。根据订单信息以及其他的门店信息,店铺信息,商品信息等…

用友NC word.docx 任意文件读取漏洞复现

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC 系统word.docx等接口存在任意文件…

rabbitmq延时队列相关配置

确保 RabbitMQ 的延时消息插件已经安装和启用。你可以通过执行以下命令来安装该插件: rabbitmq-plugins enable rabbitmq_delayed_message_exchange 如果提示未安装,以下是安装流程: 查看mq版本: 查看自己使用的 MQ(…

CHS_01.2.1.1+2.1.3+进程的概念、组成、特征

CHS_01.2.1.12.1.3进程的概念、组成、特征 进程进程的概念 进程的组成——PCB进程的组成——PCB进程的组成——程序段、数据段知识滚雪球:程序是如何运行的?进程的组成进程的特征 知识回顾与重要考点 从这个小节开始 我们会正式进入第二章处理机管理相关…

【云计算】云计算概述

1. 云计算概述 1.1 云计算的定义 美国国家标准与技术研究院(NIST)定义 云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件…

分享两个概念:非受检异常和受检异常

分享两个概念:非受检异常和受检异常 愿你的每一天都充满阳光和笑声,愿每一步都是轻松与愉快。在新的旅程中,愿你找到勇气攀登高峰,找到智慧化解困境。 愿你的心中充满温暖和善意,愿你的梦想如彩虹般美丽且真实。愿你发…

TCN 时序卷积网络 (temporal convolutional network)【因果卷积、空洞卷积】

文章目录 TCN 时序卷积 (temporal convolutional network)1.因果卷积2.膨胀卷积 TCN 时序卷积 (temporal convolutional network) 它由膨胀卷积核因果卷积两种卷积构成。 如图:左边是膨胀因果卷积,右边是…

206. 反转链表(Java)

题目描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 输入: head [1,2,3,4,5] 输出: [5,4,3,2,1] 代码实现: 1.根据题意创建一个结点类: public class ListNode {int val…

048.Python包和模块_发布包和模块

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

ARM工控机Node-red使用教程

嵌入式ARM工控机Node-red安装教程 从前车马很慢书信很远,而现在人们不停探索“科技改变生活”。 智能终端的出现改变了我们的生活方式,钡铼技术嵌入式工控机协助您灵活布建能源管理、大楼自动化、工业自动化、电动车充电站等各种多元性IoT应用&#xff…

Unity组件开发--UI管理器

1.Canvas组件: 注意属性: (1)渲染模式是:屏幕空间相机 (2)创建一个UICamera节点,管理相机 (3)屏幕画布缩放模式 (4)画布下挂载两…

前端项目构建打包生成Git信息文件

系列文章目录 TypeScript 从入门到进阶专栏 文章目录 系列文章目录前言一、前端项目构建打包生成Git信息文件作用二、步骤1.引入相关的npm包1.1. **fs** 包1.2. **child_process** 包1.3. **os** 包 (非必须 如果你想生成的文件信息中包含当前电脑信息则可用)1.4. **path** 包…

基于宝塔搭建Discuz!论坛

一、安装宝塔 我是在我的虚拟机上安装图的宝塔 虚拟机版本:Ubuntu 18.04 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh 6dca892c安装完成之后在浏览器输入你的地址 https://你的域名(或…