Misc
编码基础
Ascall
0-9:48-57
A—Z: 65-90
a-z :97-122
Unicode
fl
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多了个~号)
编码解码在线工具
摩尔斯电码(莫斯密码)
..-./
由.- 组成 / 分隔离
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文件
在线解码工具
文件格式
图片分析步骤
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)一种应用计算机算法嵌入载体文件的保护信息。数字水印技术,是一
种基于内容的、非密码机制的计算机信息隐藏技术。它是将一些标识信息(即数字水印)直接嵌入数字
载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使
用价值,也不容易被探知和再次修改。但可以被生产方识别和辨认。通过这些隐藏在载体中的信息,可
以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。数字水印是保护信息
安全、实现防伪溯源、版权保护的有效办法,是信息隐藏技术研究领域的重要分支和研究方向。
原理的简单解释
得到图片的频域图像之后,将水印编码后随即分布到各频率,然后与原图的频域进行叠加,将叠加水印
的频域进行傅里叶逆变换,即可得到添加了盲水印的图片。这种操作相当于在原来的信号中添加了噪
声,这种噪声遍布全图,在空域上并不容易对图片造成破坏。
要提取出图片的盲水印,只需把原图和带水印的图在频域中相减,然后根据原来的水印编码方式进行编
码,计科提取出水印。(所以一般需要两张图片
(盲水印加密不仅仅适用于图片,对于音频等文件也可以用盲水印加密)