常见编码:ASCII编码、URL编码、base家族编码、莫尔斯电码(Morse Code)、shellcode编码、XX encode编码、UUencoded编码、aaencode编码、JSfuck编码、jother编码、Brainfuck编码、Ook编码、敲击码、稀奇古怪的编码、社会主义核心价值观等等
ASCII编码:使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符 。
URL编码:每对name/value由&;符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。
base家族编码:
分为:base16、base32、base58、base62、base64、base91、base92、base100
base16:由 字母A-F、数字0-9共16个字符组成
base32:由 字母A-Z、数字2-7共32个字符组成,“=”符号作为后缀填充
base58:用于比特币中使用的一种独特的编码方式,主要用于比特币的钱包地址,base58不使用数字 0 ,字母大写 O,字母大写 I(小写i) 和字母大写L(小写l)以及 +,/符号
base62: 由(A-Z、a-z、0-9、)62个可见字符组成,相比base64,去掉 +,/两个符号
base64:由(A-Z、a-z、0-9、+、/ )64个可见字符组成,“=”符号作为后缀填充
base91:由(0-9,a-z,A-Z,!@#$%^&*()_+,./:;<>=?`[]{}|~")组成
base92:比base91 多了一个反向 ~ 字符
base100:由一堆Emoji 表情 组成
其他相关的编码可参考网页版进行尝试,这里我就不一一演示了在线工具 - Bugku CTF
PNG
文件头:89 50 4E 47
文件尾:AE 42 60 82
JPG(jpeg)
文件头:FF D8 FF
文件尾:FF D9
ZIP
文件头:50 4B 03 04
GIF
文件头:47 49 46 38
文件尾:
文件头修复:将图片的文件头修改为正确的文件头
16进制异或:
工具---十六进制运算---二进制异或
更改图片的高度或者宽度
exif隐写:
记录图片的拍摄日期、宽度、高度、分辨率、位深度等
kali中使用exif隐写:
exiftool + 图片名称 (显示文件信息、备注信息)
文件筛选:exiftool + 图片名称| grep flag (筛选出关于flag的信息)
解压压缩包命令:unzip + 文件名
嵌入式隐写:
分为 追加嵌入法和前置插入法
插入的信息种类分为:文本插入(将文本插入到图片里)、文件插入(将图片插入到图片里)
文件分离:
文件提取工具:binwalk或者foremost工具(kali使用)
binwalk + 文件名称
binwalk -e + 文件名称 (完全提取图片信息)
binwalk + 文件名称 -D=png(按照png格式分离出)
foremost + 文件名称 (直接分离)
blinwalk -n + 文件名
dd bs = 4308 if=baozou_new.jpg of=1.zip
foremost -v -i 要提取的原文件 -o 要输出的文件夹
LSB替换隐藏:
图片中的像素一般由三种颜色组成rgb
rgb三种轨道
工具:Stegsolve
NTFS隐写:
GIF隐写和修复:
使用Stegsolve工具
在Analys----Frame Browser下(gif一帧一帧显示)
在Analys----Data Extract下(数据提取) LSB First ,rgb六种格式一个个试,有个图片文件头正常全选保存,
在010工具中,新建文件--接着编辑---粘贴自---粘贴自十六进制文本,最后将文件头修改正确即可
pyc文件:通过在线网站进行反编译 https://tool.lu/pyc/
盲水印隐写: