技术标签: 1024程序员节
这篇大佬博客讲的非常详细:https://www.cnblogs.com/mq0036/p/6544055.html
我就不做过多的介绍了,但是看懂编码真的非常重要!!1
MISC,中文即杂项,包括图片隐写,音频隐写,流量包分析,编码分析、压缩包分析、磁盘分析取证、与信息安全相关的大数据等。
竞赛过程中解MISC时会涉及到各种脑洞,各种花式技巧。
1. Binwalk
1.1 Binwalk工具介绍
Binwalk是一个自动提取文件系统,该工具最大的优点就是可以自动完成指定文件的扫描,智能发掘潜藏在文件中所有可疑的文件类型及文件系统。=
1.2 Binwalk文件扫描和提取
Binwalk分析文件
命令:binwalk +file 通过扫描能够发现目标文件中包含的所有可识别的文件类型。
通过Binwalk我们可以看到这一张jpg文件中藏着zip文件。
Binwalk提取文件。
命令 binwalk -e +文件名。
2. foremost
2.1 foremost工具介绍
foremost是基于文件开始格式,文件结束标志和内部数据结构进行恢复文件的程序。该工具通过分析不同类型文件的头、尾和内部数据结构,同镜像文件的数据进行比对,以还原文件。它默认支持19种类型文件的恢复。用户还可以通过配置文件扩展支持其他文件类型。
2.2 foremost提取文件
有时候binwalk无法正确分离出文件,这时候就可以使用foremost,将目标文件复制到kali中,在终端中使用命令行进入文件所在文件夹,使用如下命令:
Foremost+file –o 输出目录名。
3. file命令
file命令实际上是一个命令行工具,用来查看文件类型。
使用方法:
将文件复制到kail或者带有file工具的系统中,使用file查看文件。
工具
010Editor
010Editor是一款快速且强大的十六进制编辑器。=我们可以通过使用010Editor查看文件的头部来判断类型。
以下是常见的文件头:
以上都是经常用到的,非常重要;题目做多了,自然就会记住啦
当文件类型不确定时就可以尝试查看文件头来判断
文件格式:
对于一个 PNG 文件来说,其文件头总是由位固定的字节来描述的,剩余的部分由 3 个以上的 PNG 的数据块(Chunk)按照特定的顺序组成。
文件头 89 50 4E 47 (因为很重要,所以一再强调)
还有IHDR模块
趁热打铁上题目:misc2
打开文档发现第一行出现ng,还有第二行的IHDR模块,那我们直接后缀修改为.png
直接得到flag
第二种例子就是关于010的使用,他不局限于图片,它可以查看很多样式的数据
010 Editor 是一款全新概念的 十六进制编辑器
例题misc6
我们直接把图片拖进010工具里面如图所示
关于细致的介绍,我不做过多的讲解,简单来说右边的是一些16进制的代码。用于分析数据
这题思路就是直接去试着查找字符串
CTRL+F 是搜索
答案如下
还有一种就是png图片的CRC错误;宽高不正确导致我们查看图片不全面
misc25:
我们一般的做题思路就是拿到图片,先扔进010里面查看有没有有用的信息
扔进去之后我们发现CRC报错,这里的话直接用脚本爆破
脚本如下:
import zlib
import struct
# 同时爆破宽度和高度
filename = "misc25.png"
with open(filename, 'rb') as f:
all_b = f.read()
data = bytearray(all_b[12:29])
n = 4095
for w in range(n):
width = bytearray(struct.pack('>i', w))
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x+4] = width[x]
data[x+8] = height[x]
crc32result = zlib.crc32(data)
#替换成图片的crc 在010中为第二行后三个,和第三行第一个
if crc32result == 0x76EC1E40:
print("宽为:", end = '')
print(width, end = ' ')
print(int.from_bytes(width, byteorder='big'))
print("高为:", end = '')
print(height, end = ' ')
print(int.from_bytes(height, byteorder='big'))
爆破出高为250 宽为900;
这里推荐一个工具方便修改png图片的宽高
修改之后再次打开图片
misc37
打开题目所给的图片,发现图片在动此时用工具
HoneyView查看即可
关于jpg也是一些常规操作,foremost ,binwalk,binwalk-e,分析文件结构是否出错,CRC报错等等;
所用到的软件wireshark
常规操作包括分析协议,追踪HTTP流,追踪TCP流,导出HTTP。USB键盘流量,USB鼠标流量(USB这两还是有些操作难度,目前不做要求)
主要还是对追踪的流量进行分析;
我们还是通过例题进行讲解
常规套路就是,先进行协议分析,看看TCP,和HTTP的占比
通过协议分级,我们可以看出TCP占比较大,题目给的提示是,查找登录密码。
那我们干脆直接追踪TCP流
在stream2中发现答案
常规操作首先进行协议分析
我们发现都为TCP流量,那么干脆直接追踪TCP流查看去向
直接得到flag
zip 伪加密原理:
zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。
把 压缩源文件目录区 的 全局方式位标记 的 01 00 或 09 00 改为 00 00 就可以去除密码
把 压缩源文件目录区 的 全局方式位标记 的 00 00 改为 01 00 或 09 00 就可以添加密码 提示
zip 文件
一个 ZIP 文件由三个部分组成:
压缩源文件数据区 + 压缩源文件目录区 + 压缩源文件目录结束标志
压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
00 00:扩展记录长度
6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
24 00:扩展字段长度
00 00:文件注释长度
00 00:磁盘开始号
00 00:内部文件属性
20 00 00 00:外部文件属性
00 00 00 00:局部头部偏移量
6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001
压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
59 00 00 00:目录区尺寸大小
3E 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度
以上就是基本原理,我们直接上例题
说了那么多也就总结为3条
压缩源文件数据区的全局方式位标记应当为00 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为00 00 (50 4B 01 02 14 00 后)
压缩源文件数据区的全局方式位标记应当为 00 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为 09 00 (50 4B 01 02 14 00 后)、
压缩源文件数据区的全局方式位标记应当为09 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为09 00 (50 4B 01 02 14 00 后)
ps:也不一定要09 00或00 00,只要是奇数都视为加密,而偶数则视为未加密
但是这道题全是09 00,因此我的第一想法是真加密.
打开伪加密的文件
分析可知为压缩源文件数据区位置为09 00
压缩源文件区为 09 00 我们把09 00改为 00 00 成功破解伪加密,红色为我们修改的位置
爆破 工具ARCHPR
直接扔进工具爆破就行,到时候会细讲
工具audacity
对于音频题目还是首先观察一下是否存在摩斯密码,二进制转换等等
例如下题
例题,打开音频
对于上图中的我们常规转换方式为摩斯密码
结果为
短的为. 长的为-
..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
之后用到所给摩斯密码解密即可
例题为23山东省网络安全技能大赛 题目
打开文件我们查看频谱图
直接看到答案
文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr
文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc
文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8
文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束
文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求
文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname
文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立
文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码
文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词
文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限
文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定
文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland