CTF杂项基本题目思路(图片文件隐写-压缩文件-流量取证)

一、文件隐写

1.当遇到文件类型未知的文件时怎么办?

①linux系统可以使用file命令查看文件的类型,格式:file 文件名

②使用winhex或者010editor查看文件头,从而判断文件的类型,①中file命令的本质也是查看文件的文件头。

2.当文件头残缺或错误怎么办?

当打开文件时提示文件打开失败,使用file查看文件类型时,只显示“data”,说明文件头残缺或错误,需要我们用010editor或者winhex手动添加

3.如果一个文件由多个文件合并而成怎么分离?

①可以使用Binwalk工具,它是linux下自带的文件分析和分离工具,可以直接在命令行输入命令.

分析文件命令:binwalk 文件名 

分离文件命令:binwalk -e 文件名

②另一个工具foremost也可以分离文件,同样是linux下自带的工具

用法:foremost 文件名 -o 输出目录名

③当文件自动分离出错或者因为其他原因无法自动分离时,可以使用dd实现文件手动分离

if表示输入文件名,of表示输出文件名,bs表示想要分离的大小,count表示重复次数,skip表示跳过几个bs值

比如下图,将1.txt中前五个数字分离出来,输出到2.txt中,bs=5,重复一次

如果想分离前十个数字,那就让count=2

如果跳过前3个数字,那就使用skip

④也可以使用010editor直接分离文件

4.如果一个文件被分离成好几个文件怎么合并?

在Linux下,使用cat命令合并,合并后查看md5值对比,判断合并后的文件是否正确

格式:cat 文件名1 文件名2 文件名3 > 输出文件名

二、图片文件隐写

1.Exif

windows下图片右键属性,查看ecif或查看详细信息,在相关选项卡中查找flag信息

linux下可以使用exiftool命令查看详细信息,格式:exiftool 图片名

2.stegsolve 

当两张jpg图片外观、大小、像素都基本相同时,可以考虑进行结合分析,即将两个文件的像素RGB值进行XOR、ADD、SUB等操作,看能否得到有用的信息。但是要注意导入stegsolve图片的顺序,顺序不同得到的结果也不同

3.LSB(最低有效位Least)

RGB是由8位二进制显示出的颜色,但是修改最后一位二进制数字并不会改变图片的颜色,那就可以更改最后一位的数值,连起来形成ASCII码,隐写信息,如下图

解决办法有四种

①使用stegsolve查看最后一位,但是因为顺序不同,要多点几下,多去尝试

②zsteg工具,会把各种顺序列出来,比stegsolve好用,但是在Linux下需要安装,安装命令:gem install zsteg

③如果文件类型是bmp,推荐使用westrgo4,或者用画图软件转成png格式并且使用stegslove查看图片

④编写python脚本(小白忽略)

4.当png文件无法打开,或者图片只有一部分时怎么办

当文件无法正常打开时,使用TweakPNG打开文件后,提示crc错误,需要更改。然后需要winhex修改 ,打开winhex搜索原crc,替换成错误信息中的crc

当图片高度或宽度发生了错误,需要根据 正确的CRC计算出正确的高度或者宽度,计算的py脚本如下

(其实作者之前做过某题,没有根据CRC计算出高度,随便填写一个高度,就能让图片中高度变高,flag就出来了,此处根据CRC计算高度和宽度更加严谨)

5.如果图片被加密了怎么办?

使用bftools解密图片信息,格式:

Bftools.exe decode braincopter 要解密的图片名称 -o 输出文件名

Bftools.exe run 上一步输出的文件名

另一款解密工具:SilentEye  如果有文字或者文件隐藏到图片中,就可以用它解密

其他工具:

①针对于JPEG的Stegdetect,可识别多种加密方式

②outguess加密的图片,使用outguess工具

6.针对二维码的操作

①二维码缺失一角,使用ps等图片编辑软件补上即可

②二维码反色,使用画图软件取反即可  

③彩色二维码,使用画图软件取反后,再使用stegslove一帧一帧的看

三、压缩文件处理

1.伪加密

ZIP压缩文件被加密,或者文件头正常但是解压错误,就需要尝试文件是否为伪加密。方法:使用winhex打开压缩文件,搜索16进制504B0102,从50开始计算,第九第十个字符为加密字段,将其设置成0000即可变成无加密状态

RAR压缩文件被加密,使用winhex打开文件后,找到第24个字符,该字节尾数为4表示加密,0表示无加密,将尾部改成0即可破解伪加密

2.真加密:暴力破解

如果已知部分明文信息,可使用ARCHPR工具进行暴力破解

3.压缩包损坏

当一个压缩包解压后可能有部分文件没有被解压出来,原因就是解压软件无法识别错误的文件头 

修改没有解压出来的文件的文件头,再次解压即可

四、流量取证技术

想要做流量分析,不可避免的要用到WireShark

1.常见的过滤命令

2.协议分级统计

当数据包很大时,可以通过协议分级统计找最大占比的传输,可能就是在传输某个压缩包

3.WireShark流汇聚

在关注的http数据包或者tcp数据包中选择追踪流,可以将HTTP或者TCP流汇聚或还原成数据,在弹出的框中可以看到数据内容。

常见的HTTTP流关键内容:
①HTML中直接包含重要信息

②上传或下载文件内容,通常包含文件名, hash值等关键信息,常用POST请求上传

③一句话木马,POST请求,内容包含eval,内容使用base64加密

4.WireShark数据提取

①使用wireshark可以自动提取通过http传输的文件内容

②如果找到最大占比的字段名, 就可以导出分组字节流,缩小导出范围

5.无线wifi流量包

无线wifi流量包的Source不是IP地址,而是MAC地址。无线协议是802.11

遇到无线wifi流量包,如果要解出wifi密码,剋使用linux下的aircrack-ng工具破解

命令格式:aircrack -ng 流量包名 -w 字典

6.USB流量包文件分析

①键盘流量抓取分析,键盘流量会存放在LCD这个字段中,这个字段的数据长度为8个字节,击键信息集中在第三个字节。这个字节的十六进制与键盘上的值一一对应,部分对照如下

下图是USB流量包中LCD字段的示例

再使用linux自带的tshark工具,将流量包中这个字段的数据提取出来

命令格式为:tshark -r 流量包名 -T fields -e  usb.capdata >导出的文件名.txt

最后使用python脚本,将第三个字节转换后数据,脚本代码如下

mappings = { 0x04:"A",  0x05:"B",  0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G",  0x0B:"H", 0x0C:"I",  0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O",  0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5",  0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[DEL]",  0X2B:"    ", 0x2C:" ",  0x2D:"-", 0x2E:"=", 0x2F:"[",  0x30:"]",  0x31:"\\", 0x32:"~", 0x33:";",  0x34:"'", 0x36:",",  0x37:"." }
nums = []
keys = open('out.txt')
for line in keys:if line[0]!='0' or line[1]!='0' or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0':continuenums.append(int(line[6:8],16)) 
keys.close()
output = ""
for n in nums:if n == 0 :continueif n in mappings:output += mappings[n]else:output += '[unknown]'
print 'output :\n' + output

②鼠标流量分析。鼠标数据包的数据长度为4个字节

  1. 第一个字节代表按键,当取0x00时,代表没有按键;为0x01时,代表按左键;为0x02时,代表当前按键为右键
  2. 第二个字节代表左右偏移,当值为正时,代表右移多少像素;当值为负时,代表左移多少像素
  3. 第三个字节代表上下偏移

前面分析方法与键盘流量相同,使用tshark得到数据包的txt文档后,再使用python脚本得到鼠标的移动轨迹坐标,再使用kali自带的gnuplot工具,根据坐标画出轨迹得到flag。

使用python脚本得到坐标

nums = []
keys = open('Python\\USBread\\mouse\\out.txt','r',encoding="utf_16")
f = open('Python\\USBread\\mouse\\xy.txt','w',encoding="utf_16")
posx = 0
posy = 0
for line in keys:# if len(line) != 11:#     continuex=int(line[3:5],16)y=int(line[6:8],16)if x>127:print ("aaa")x-=256if y>127:print ("bbb")y-=256posx += xposy += ybtn_flag = int(line[0:2],16) #1 for left,2 for right , 0 for nothingif btn_flag == 0:#此处的0可以修改为0(未按按键)、1(左键)、2(右键),将单独输出相应坐标文件。print (posx,posy)f.write(str(posx))f.write(' ')f.write(str(posy))f.write('\n')
f.close()

根据坐标,使用gnuplot得到图形得到结果

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

sa-token使用及与spring-security的对比

sa-token相关资料地址 官网: https://sa-token.cc/ gitee: https://gitee.com/dromara/sa-token github: https://github.com/dromara/sa-token 快速开始: https://sa-token.cc/doc.html#/ sa-token典型应用 这里我直接拿SpringBoot_v2(springboot的开源后台脚手…

MySQL:left join后用on与where的区别

一、前言 前几天项目中,写SQL时本想通过 A left B join on and 后面的条件来使查出的两条记录变成一条,奈何发现还是有两条。在此记录一下,on与where的区别。 二、ON 原始数据展示 SELECT t1.*,t2.* FROM t_test_staff t1 left join t_te…

ANX9833FN-AA-R ANX9833 ANALOGIX QFN48 VGA视频转换器件

ANX9833概述:ANX9833是VGA显示接口适配器集成电路设计一个显示端口1.2/1.1源连接到一个VGA显示。与芯片上的单片机和记忆,ANX9833不需要任何外部配置或设置。它自动引导VGA显示接口适配器的输出,有效地处理所有类型的遗产显示器、投影仪,和电视。ANX9833提供Gbps带宽在两车道到…

2025全平台短剧系统 : 快手、抖音、微信全覆盖

之前,我曾详细阐述过公司短剧系统的一些功能,它们共同构建了一个全面、高效的短剧制作与运营平台。这些功能,无论是媒资管理、剧场设定,还是后期运营,都是经过深思熟虑、精心设计的,是一个成熟的短剧系统所…

机圈白刃战,vivo聚势成风

金秋十月,国产手机市场进入了空前激烈的竞争局势,几乎每天都有发布会,甚至隔段时间就有新机话题登上热搜。网友戏称,发布会密度高到“工作日都不够用了”。 10月14日,vivo X200系列率先登场,拉开了国产旗舰…

scp 或 ssh 报错no matching host key type found. Their offer: ssh-rsa 解决方案

报错如下: 解决方案: 在 scp 或 ssh 命令后面增加参数: -o HostKeyAlgorithmsssh-rsa 可以解决此问题, scp格式如下: scp -o HostKeyAlgorithmsssh-rsa [local_file_path] [user][hosts]:[remote_path]

ElasticSearch概述

ElasticSearch概述 Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使…

一文彻底了解UDHCP源码核心☝️

🍄参考学习: udhcp源码剖析(一)——DHCP服务器和客户端的工作流程_udhcpc源码v1.29.2-CSDN博客 前言介绍 本文深入探讨了DHCP服务器和客户端的工作流程,以udhcp为例,详细阐述了udhcpd(服务器)…

开启鸿蒙开发之旅:静态页面搭建

写在前面 了解了一些常用的系统组件及其属性之后,我准备开始搭建我第一个页面,本次鸿蒙Next初体验我准备模仿这款“提醒事项”APP,从页面搭建到基本功能实现。今天从入口页开始: 布局思路 整体结构 从该页面的整体布局结构来看&…

C++20 STL CookBook 7 Containers(II)

让vector在插入删除的时候仍然保证是有序的 首先&#xff0c;STL的确提供了一种办法来检查我们的目标容器是不是有序的&#xff1a;std::is_sorted - cppreference.com&#xff0c;也就是std::is_sorted。我们当然可以这样做&#xff1a; #include <iostream> #include…

二叉树搜索树(下)

二叉树搜索树&#xff08;下&#xff09; 二叉搜索树key和key/value使用场景 key搜索场景 只有key作为关键码&#xff0c;结构中只需要存储key即可&#xff0c;关键码即为需要搜索到的值&#xff0c;搜索场景只需要判断 key在不在。key的搜索场景实现的二叉树搜索树支持增删查…

人力资源招聘系统-提升招聘效率与质量的关键工具

在当今这个竞争激烈的商业环境中&#xff0c;企业要想在市场中立于不败之地&#xff0c;关键在于拥有高素质的人才队伍。然而&#xff0c;传统的招聘方式往往效率低下&#xff0c;难以精准匹配企业需求与人才特质&#xff0c;这无疑给企业的发展带来了不小的挑战。 随着科技的飞…

【C++】类中的“默认成员函数“--构造、析构、赋值

目录 概念引入&#xff1a; 一、构造函数 问题引入&#xff1a; 1&#xff09;构造函数的概念 2&#xff09;构造函数的特性 二、析构函数 1&#xff09;析构函数概念 2&#xff09;析构函数特性 三、拷贝构造函数 1)拷贝构造函数概念 示例代码&#xff1a; 2)深拷…

环丙烷环辛炔聚乙二醇磷脂,淡黄色固体,BCN-PEG-DSPE

中文名称&#xff1a;环丙烷环辛炔聚乙二醇磷脂 英文名称&#xff1a;BCN-PEG-DSPE 外观&#xff1a;通常为黄色或淡黄色固体 材料来源&#xff1a;为华生物 溶解性&#xff1a;在有机溶剂&#xff08;如氯仿、乙醇&#xff09;中具有良好的溶解性&#xff0c;而在水中的溶…

202409电子学会青少年机器人技术等级考试(六级)理论综合真题

青少年机器人技术等级考试理论综合试卷&#xff08;六级&#xff09; 分数&#xff1a; 100 题数&#xff1a; 30 一、 单选题(共 20 题&#xff0c; 共 80 分) 1. 使用 ESP32 for Arduino SPI 类库&#xff0c; 下列选项中&#xff0c; 具有设置时钟模式功能的成员函数是&…

如何学习VBA_3.2.14:字符串的处理

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的劳动效率&#xff0c;而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册&#xff0c;现在已经全部完成&#xff0c;希望大家利用、学习。 如果…

ABeam News | ABeam中国受邀参加2024中国知识管理年会暨第14届China MIKE颁奖典礼,并荣获大奖

“ABeam/ News ” 近日&#xff0c;2024中国知识管理年会暨第14届China MIKE颁奖典礼圆满召开&#xff0c;大会结合AI赋能新质生产力的热点话题&#xff0c;以“AI超能力KM新价值” 作为主题&#xff0c;为与会观众带来知识管理的一场盛宴。ABeam中国受邀参会并荣获2024 China…

Error: Could not find or load main class org.apache.catalina.startup.Bootstrap

#现象&#xff1a; 官网下载tomcat source包后&#xff0c;启动报错&#xff0c;等一系列缺包造成服务无法启动 Error: Could not find or load main class org.apache.catalina.startup.Bootstrapjava.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory原因 …

论文解读《CTRLsum: Towards Generic Controllable Text Summarization》

引言&#xff1a;一篇上交大佬的著作 ✅ NLP 研 2 选手的学习笔记 笔者简介&#xff1a;Wang Linyong&#xff0c;NPU&#xff0c;2023级&#xff0c;计算机技术 研究方向&#xff1a;文本生成、大语言模型 论文链接&#xff1a;https://aclanthology.org/2022.emnlp-main.396.…

【spotfire】脚本相关

文章目录 ironpython脚本使用JS实现弹出窗口思路实现效果 脚本的使用可以极大扩展spotfire的功能&#xff0c;但如何使用脚本一直不得其门而入&#xff0c;咨询厂商、查询资料&#xff0c;特此记录备忘。 ironpython脚本使用 参见官网教程&#xff1b; 部分参考资料如下&#…