2023/12/4 mis(编码+图片文件格式+图片隐写) 学习笔记

Misc

编码基础

Ascall

0-9:48-57

A—Z: 65-90

a-z :97-122

Unicode

f&#x006c

DES解密

密文和钥匙 key

在线网站直接找就行

url编码

flag%7Bhello_world%7D

base家族编码

base64
A-Z a-z 0-9 +/=

Base64 编码是一种常用于将二进制数据转换成可打印字符的编码方式。它基于64个字符的编码表,通常使用字母(A-Z, a-z)、数字(0-9)、加号(+)、斜杠(/)共64个字符,再加上一个填充字符(通常是等号 "="),共计65个字符。通常后面会带等号(0-3个等号==)

转换原理

每三个一组 每个元素先转ascsll

再每六位一组分为四组(六位二进制数最多能表示64个数)

高位补零 转化为四组八位

对应10进制

通过映射表转换出来

base32
A-Z 2-7 =

后方也会带等号 可能大于三 ====

base16
0-9 A-F

不会出现等号

base58
1-9 A-Z(无O,I) a-z(无l) 无+/

相对于base64 不再使用数字”0“ 字母大写”O“ ”I“ 字母小写”l“,以及”+“和”/“符号

其他base

如果有比较多的符号则是 base91或者base92(比base91多了个~号)

编码解码在线工具

在线工具 - Bugku CTF

摩尔斯电码(莫斯密码)

..-./

由.- 组成 / 分隔离

Flag{hello_workd}

加密后 ..-./.-../.-/--./----.--/...././.-../.-../---/..--.-/.--/---/.-./-.-/-../-----.-

再解密 FLAG%u7bHELLO_WORLD%u7d

shellcode编码

\x5d\x3c\x22

shellcode简介 shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。

XXencode编码

+- A-Z a-z 0-9
FNalVNrhcNKlgPpxrPr7gN5o+

总共63个字符 和base64相比少了/ 多了- 且没有=

UUencode编码

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_

aaencode编码

(゚ε゚+(゚Д゚)[゚o゚]

将js代码转换成常用的网络表情(颜文字js加密)

在线编码(再网页命令行输入编码可以实现解码)

https://utf-8.jp/public/aaencode.html

JSfuck

[]!()+

只使用[]!()+六个符号书写任何js代码

JOther 编码

[]!()+{}

只是用[]!()+{}八个字符 与jsfuck相比 多了{}

Brainfuck 编码

><+-.,[]

使用八种字符 所有操作都由八种字符构成><+-.,[]

在线网址 https://www.splitbrain.org/services/ook

flag{hello_workd}

编码后:+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
++++[ ->+++ +<]>+ +++.< ++++[ ->--- -<]>- --.-- -.+++ ++++. .+++. <++++
[->-- --<]> .<+++ +[->+ +++<] >++++ ++++. ----- ---.+ ++.-- ----- .----
---.< +++++ [->++ +++<] >.<

ook

改编码都非常长

flag{hello_workd}

编码后:Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!
Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook?
Ook. Ook? Ook! Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook. Ook?
Ook.

敲击码

.. .....

CTF在线工具-在线敲击码|敲击码编码|敲击码算法|tap code

flag{hello_world}

编码后21 31 11 22 23 15 31 31 34 52 34 42 31 14

核心价值观码

Bugku CTF 中有在线工具

与佛伦禅

flag{hello_world}

佛曰:https://keyfc.net/bbs/tools/tudoucode.aspx

佛曰:罰藝顛罰耨梵度哆所侄伽梵槃彌諳彌俱怛缽寫摩諳離冥蘇皤礙得皤真奢槃佛缽遮諳提知寫罰滅無究都依諳是缽依喝菩。殿智三集朋栗哆蒙僧諳輸奢大缽尼三罰栗皤是漫

新佛曰: 新约佛论禅/佛曰加密 - PcMoe!

新佛曰:諳諸隸諳僧降吽諸諳陀諳摩隸諳僧缽薩願耨咤陀諳願諳羅咤諳喃阿隸色陀修隸吶吶愍慧嚤莊諳修喃色空如如囑諳囑

猪圈密码(共济会密码)

只能英文转换

栅栏密码

把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话

凯撒密码

明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文

Quoted-printable编码(只针对于非英文)

=E5=91=A8=E5=AE=8F=E4=BA=AE

任何一个8位的字节值可编码为3个字符:一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值

ASCII码换页符(十进制值为12)可以表示为”=0C”

等号”=”(十进制值为61)必须表示为”=3D”.

除了可打印ASCII字符与换行符以外,所有字符必须表示为这种格式.

pyc反编译

python文件通过编码得到pyc文件

在线解码工具

pyc反编译 - 工具匠

文件格式

图片分析步骤

1.16进制编辑器(010,winhex) 分析文件格式

2.stegsolve(lsb隐写)

3.binwalk+foremost

 exiftool NTFS隐写

可以使用010edtior查看

JPEG(jpg):
文件头: FF D8 FF

文件尾: FF D9

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

文件尾:AE 42 60 82

BMP文件
文件头42 4D xx xx xx xx 00 00 00 00 xx xx xx xx (BM**)

GIF文件
文件头 47 49 46 38
zip文件
文件头 50 4B 03 04    (PK)

PNG图片文件格式

对于一个 PNG 文件来说,其文件头总是由位固定的字节来描述的,剩余的部分由 3 个以上的 PNG 的数据块(Chunk)按照特定的顺序组成。文件头 89 50 4E 47 0D 0A 1A 0A + 数据块 + 数据块 + 数据块……

数据块(CHUNK

PNG 定义了两种类型的数据块,一种是称为关键数据块(critical chunk),这是标准的数据块,另一种
叫做辅助数据块(ancillary chunks),这是可选的数据块。
关键数据块定义了 4 个标准数据块,每个 PNG 文件都必须包含它们,PNG 读写软件也都必须要支持这
些数据块

四个标准数据块

对于每个数据块都有着统一的数据结构,每个数据块由 4 个部分组成。


CRC域中的值是对 Chunk Type Code 域和 Chunk Data 域中的数据进行计算得到
的。 第四个部分由第三个通过一些计算得到

例如

IHDR

头文件数据块 包含PNG文件种存储的图像数据基本信(宽度 高度 颜色类型......

PLTE

可选数据块 可以没有

ps 美颜后啥的会留下该是数据块 文件被更改后会显示出来

IDAT

具体显示什么内容

存储图像像素数据 图片内存越多 IDAT 数据越多

只有当上一个块充满是才会继续一个新的块

可以用zlib解压缩

IEND

图像结束数据: 用来标记PNG文件或者数据流已经结束 必须放在文件尾部

jpg

有损压缩 像素值会有少许变化

在保存时有个质量参数可在 0 至 100 之间选择,参数越大图片就越保真,但图片的体积也就越大。一般情况下选择 70 或
80 就足够了

• JPEG 没有透明度信息
• JPG 基本数据结构为两大类型:“段” 和经过压缩编码的图像数据。

图像文件的修复

文件头修复

拿到一张图片后 显示为这个

用010editor 打开发现文件头错误 文件尾正常

改为 89 50 4E 47成功拿到flag

16进制的二进制异或

0 ^ 0 = 0

1 ^ 0 = 1

1 ^ 1 = 0

0和任意数异或为任意数

打开后的文件头

文件尾

观察文件尾 全是1E 和 0F

通过经验观察是 0^1E

通过计算验证 89 ^ 1E = 97

  50 ^ 1E = 4E

10001001 ^ 00011110 == 10010111== 97

01010000 ^ 00011110 == 01001110 == 4E

在上方工具栏找到16进制工具 再点击2进制异或

在输入框种输入1E 并选择16进制

成功拿到flag

观察修改后的文件尾 文件尾后的数字都没有用

文件的宽度和高度

如果文件高度或者宽度修改 crc会显示报错

因为crc是由Chunk Type Code 域和 Chunk Data 域中的数据进行计算得到

图片隐写
exif隐写

图片信息查看

使用exiftool查看

通常配合管道符

直接嵌入式隐写

在文本文件、多媒体文件及可执行文件等载体文件中,利用其文件特
性与冗余性,在不影响载体正常使用的情况下,将秘密信息插入到载
体中,实现信息隐藏。
根据文件特性与冗余性可分为:追加插入法和前置插入法。
根据插入的信息种类分为:文本插入、文件插入......

直接能在010editor上看到flag

追加插入

一些flag可能会追加插入到文件中

在工具中使用010editor ctrl+f 查找 将查找类型改为Ascall 输入flag进行查找

追加文本我们可以很方便的在16进制编辑器中找到被隐藏的信息,但是被插入的信息有时候并不仅仅是
文本,可能是一个文件。对于这样的隐写,我们要用到 binwalk 工具(或者 foremost 工具)

文件分离

将一个文件插入到另外一个文件中 分离方法

先将文件托到010editor中

观察到文件结尾后又拼接了一个png文件的开头

先使用 binwalk查看图片信息

分析可得图中有两个png格式的文件 后面还有一些奇奇怪怪的东西

binwalk

binwalk filename 分析filename的信息

使用binwalk分离试试

binwalk -e a文件分离.jpg //分离 一般都是用这个吧

binwalk a文件分离.jpg -D=jpg // -D= 可以指定分离后文件的形式

发现没什么用(发现binwalk没用后可以使用foremost和dd分离)

foremost

foremost a文件分离.jpg

可以加一个选项和参数确定分离文件的存储位置

foremost a文件分离.jpg -o LSB 将分离的文件存储到LSB文件夹中

此时可以在LSB文件夹中找到我们需要的文件

如果不加地址则会在当前目录下创建一个新的文件夹

上面的文件同时也可以用dd分离

dd

格式:

dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节

参数说明:

if=file

of=file

bs=bytes

skip=blocks

dd if=a文件分离.jpg of=a.jpg bs=1 skip=158792 count=158822 从第128792开始截取到158822 即第二张png图片 貌似也可以不用count选项

网上关于dd命令的使用

LSB隐写

用StegSlove切换后藏了个二维码 可以用CQR截取二维码解密

NTFS隐写

NTFS交换数据流(alternate data streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下每一个文件,都有着主文件流和非主文件流,主文件流能够直接看到;而非主文件流寄宿于主文件流中,无法直接读取,这个非主文件流就是NTFS交换数据流。

如何隐藏文件

例如

下面是一个目录下有一个flag文本和一张图片

我将一个带有flag的文件隐藏在这个图片中 在当前目录下用命令行type flag.txt>mmm.png:flag.txt 然后再删除该flag文件

使用NtfsStreamsEditor工具 打开文件所在目录位置 点击搜索 发现两个影藏的数据流文件(另外一个是我之前测试加的)

选中文件后 点击右下角的导出工具便能得到文件 获取flag

GIF隐写
文件头  47 49 46 38

用editor打开该文件 发现文件头不满足gif格式 改了之后

修改后

保存之后用stegslove打开

点击Frame Browser 逐帧分析

一直点击 发现第一个flag

第二个第三个

组合得到flag

crc 宽度爆破

拿到一张png后缀的文件 无法正常打开

 将其拖入010中 发现文件头不合格 并且下方出现error

应该是IHDR中的信息被修改了

先将文件头修改为 89 50 4E 47 另存为crc2.png 后用010打开

查看后发现 宽度为零

再将宽度修改为760 发现依旧无法正常打开

这个时候就需要python工具爆破其宽度 这里我们使用 一个名为crc32.py的文件 代码如下

import struct
import binascii
import os

m = open("filename","rb").read()
for i in range(1026):
    c = m[12:16] + struct.pack('>i',i) + m[20:29]
    crc = binascii.crc32(c) & 0xffffffff
    if crc == 0x932f8a6b:
        print(i)

先将需要爆破的文件托到该目录下 再将open中的文本名字改为需要爆破的文件 在kali终端用 python2 crc32.py 命令运行即可

我们将crc.png拖入该目录下

修改文件名后保存运行

在当前页打开终端 输入 python2 crc32.py运行得出宽度

在010中将该图片得宽度修改为709后 正常打开成功并拿下flag

盲水映隐写

盲字水印(Digital Watermark)一种应用计算机算法嵌入载体文件的保护信息。数字水印技术,是一
种基于内容的、非密码机制的计算机信息隐藏技术。它是将一些标识信息(即数字水印)直接嵌入数字
载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使
用价值,也不容易被探知和再次修改。但可以被生产方识别和辨认。通过这些隐藏在载体中的信息,可
以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。数字水印是保护信息
安全、实现防伪溯源、版权保护的有效办法,是信息隐藏技术研究领域的重要分支和研究方向。

原理的简单解释

得到图片的频域图像之后,将水印编码后随即分布到各频率,然后与原图的频域进行叠加,将叠加水印
的频域进行傅里叶逆变换,即可得到添加了盲水印的图片。这种操作相当于在原来的信号中添加了噪
声,这种噪声遍布全图,在空域上并不容易对图片造成破坏。

要提取出图片的盲水印,只需把原图和带水印的图在频域中相减,然后根据原来的水印编码方式进行编
码,计科提取出水印。(所以一般需要两张图片

(盲水印加密不仅仅适用于图片,对于音频等文件也可以用盲水印加密)

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值