Misc学习之编码和zip解密

admin 2023年6月19日14:05:58评论34 views字数 6637阅读22分7秒阅读模式


Misc学习之

编码和zip解密


         正义可能会迟到 

             但周分享不会迟到!!!

          本周内容超丰富 满满干货~

          全是表哥的心血啊 快记快记!


01

编码

由0~9和a~f组成的字符串(明文:114514)

○ MD5加密

○ c4d038b4bed09fdb1471ef51ec3a32cd

○ SHA1加密

○ 2c8509df0df65f9826dc872a9acfea532c1f53c7

○ HMAC加密

○ 4cc985a3b8ac549a5767303285b073f8e9cd6b08

○ NTLM加密

○ 0a1f2055b4ba71c5251d8ef7c235996b

BASE类型(114514)

○ base64加密(一般末尾会有1~2个= 明文很少的时候则没有)

○ 编码原理:Base64编码要求把3个8位字节转化为4个6位的字节,之后在6位的前面补两个0,形成8位一个字节的形式,6位2进制能表示的最大数是2的6次方是64,这也是为什么是64个字符(A-Z,a-z,0-9,+,/这64个编码字符,=号不属于编码字符,而是填充字符,如果剩下的字符不足3个字节,则用0填充,输出字符使用‘=’,因此编码后输出的文本末尾可能会出现1或2个‘=’)

○ MTE0NTE0

○ base58加密(无0 O I i + / =)

○ Base58是用于比特币(Bitcoin)中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。

相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+“和”/"符号

○ RVnVEznP

○ base32加密(超过10位会有很多=)

○ Base32使用了ASCII编码中可打印的32个字符(大写字母AZ和数字27)对任意字节数据进行编码.Base32将串起来的二进制数据按照5个二进制位分为一组,由于传输数据的单位是字节(即8个二进制位).所以分割之前的二进制位数是40的倍数(40是5和8的最小公倍数).如果不足40位,则在编码后数据补充"=",一个"="相当于一个组(5个二进制位),编码后的数据是原先的8/5倍

○ GEYTINJRGQ======

○ base16加密(没有=且数字多于字母)

○ 将数据(根据ASCII编码,UTF-8编码等)转成对应的二进制数,不足8比特位高位补0。然后将所有的二进制全部串起来,4个二进制位为一组,转化成对应十进制数。根据十进制数值找到Base16编码表里面对应的字符。Base16是4个比特位表示一个字符,所以原始是1个字节(8个比特位)刚好可以分成两组,也就是说原先如果使用ASCII编码后的一个字符,现在转化成两个字符。数据量是原先的2倍。

○ 3131343531340A

○ base85加密(特殊符号很多很难出现=)

○ <~0ekLB0f04E~>

○ base100加密(Emoji表情构成)

○ Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本.

ROT13等

○ 特征:它与凯撒密码差不多都是字母替换,你看到一句特别奇怪的语句可能就是它编码的

○ ROT5/13/18/47是一种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取。

ROT5 是 rotate by 5 places 的简写,意思是旋转5个位置,其它皆同。下面分别说说它们的编码方式:

ROT5:只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环。

ROT13:只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。

ROT18:这是一个异类,本来没有,它是将ROT5和ROT13组合在一起,为了好称呼,将其命名为ROT18。

ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。用于ROT47编码的字符其ASCII值范围是33-126,具体可参考ASCII编码。

非对称性加密

○ AES

○ U2FsdGVkX19P05w+JuatHt0yBF9Bg2W4RAVqUs8Zibc=

○ DES

○ U2FsdGVkX1+7Q62kVOhXkn/V6TTJ72d2

○ RC4

○ U2FsdGVkX19dZItlyRwfgWX1pP5DmA==

○ Rabbit

○ U2FsdGVkX1/R3aaL5Kep+IwPZigUVg==

○ Triple DEs

U2FsdGVkX1/GdPnmmZJ/dlKggOj3Ugni

Unicode

○ 汉字示例&#36825;

○ &#49;&#49;&#52;&#53;&#49;&#52;

HTML实体编码

○ 字母示例&#116;

○ 16进制:&#x31;&#x31;&#x34;&#x35;&#x31;&#x34;

○ 10进制:&#49;&#49;&#52;&#53;&#49;&#52;

16进制Unicode——示u8fd9u662fu4e00

○ u0031u0031u0034u0035u0031u0034

Escape编码/加密、Unescape解码/解密、%u编码、%u解码

○ Escape/Unescape加密解码/编码解码,又叫%u编码,从以往经验看编码字符串出现有"u",它是unicode编码,那么Escape编码采用是那一种unicode实现形式呢。其实是UTF-16BE模式。这样一来问题非常简单了。Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符

○ %u0031%u0031%u0034%u0035%u0031%u0034

URL、Hex编码

○ 这两种加密的密文是一样的,不同的是当你用url编码网站时是不会把http进行编码的,而Hex编码则全部转化了

○ encodeURIComponent() 函数 与 encodeURI() 函数的区别

○ 请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

○ 114514%0A

○ %31%31%34%35%31%34

凯撒密码(where is flag)

○ 凯撒密码最早由古罗马军事统帅盖乌斯·尤利乌斯·凯撒在军队中用来传递加密信息,故称凯撒密码。此为一种位移加密手段,只对26个(大小写)字母进行位移加密,规则相当简单,容易被破解。下面是明文字母表移回3位的对比:

○ 明文字母表 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

○ 密文字母表 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

○ 然后A变成D,B变成E,Z变成C。

○ 字母最多可移动25位(按字母表)。通常为向后移动,如果您想向前移动1位,则相当于向后移动25位,位移选择为25位

○ zkhuh lv iodj

  维吉尼亚密码

○ 凯撒密码的加强版,引入了密钥

○ 维吉尼亚密码,它将凯撒密码的所有26种排列放到一个表中,形成26行26列的加密字母表。此外,维吉尼亚密码必须有一个由字母组成的密钥,至少有一个字母,最多与明文字母有相同数量的字母。

○ 在凯撒密码中,每个字母都会进行一定偏移值转换,例如,当偏移值是3时,则B被转换为E,C转换成F…。在维吉尼亚密码加密中,则是由具有不同偏移的凯撒密码构成的。

○ 要生成密码,需要使用表格方法,此表(如图所示)包含26行字母表,每一行从上一行到左行被一位偏移。加密时使用哪一行字母表是基于密钥的,在加密过程中密钥会不断变化。

○ 例如,假设明文为:

○ BTTACKATDAFG

○ 选择一个关键字并重复它以获得密钥,例如,当关键字是LIMN时,键是:

○ LIMNLIMNLIMN

○ 在明文中的第一个字母B,对应于密钥中的第一个字母L,使用加密字母表中的L行字母进行加密,得到第一个字母的密文M。同样,第二个明文字母是T,它用表中的I行加密,得到第二个密文B。通过类比,我们可以得到:

○ 明文:BTTACKATDAFG 键:LIMNLIMNLIMN 密文:MBFNNSMGOIRT

解密的过程是加密的逆过程。例如,密钥的第一个字母对应的L行字母表,发现密文的第一个字母M位于B列,因此明文的第一个字母是B。密钥的第二个字母对应于I行字母表,而密文的第二个字母B位于该行的T列中,因此明文的第二个字母是T。等等,你可以得到明文。

【表哥有话说 第90期】Misc学习之编码和zip解密

○ soiii qk kwam

栅栏密码基础型

○ 栅栏密码是按一定规则将明文内容互相调换了位置

栅栏密码(Rail fence Cipher)基础型加密方式,是一种简单的移动字符位置的加密方法,首先把加密的明文分成N个一组,然后把每组的第1、第2、第M个字符连起来,形成无规律的密文字符串。

例如字符串“123456789abc”,首先将字符串分成3组,如下排列:

1234

5678

9abc

依次取每一组字符,组成加密后密文:“15926a37b48c”。

○ welhrifaesg

栅栏密码W型

○ 栅栏密码W型加密算法:

○ 栅栏密码(Rail fence Cipher),扩展变种W型,采用先把明文类似"W"形状进行排列,然后再按栏目顺序1-N,取每一栏的所有字符值,组成加密后密文。

○ 比如字符串“123456789”,采用栏目数为3的时,明文将采用如下排列:

○ 1—5---9

○ -2-4-6-8-

○ –3----7–

○ 取每一栏所有字符串,组成加密后密文:“159246837”。

○ welhrifaesg

文本隐藏加密

特征:加密过的密文会比原文的字节数多,当你按删除键的时候会发现某一处要按好多下才能把前面的字删掉

原理**:它的原理是在密文中加入了不可见字符组成的编码,例如上述看似九个字符的一句话,通过字数查询可知它实际上有87个字符,多出的字符是由零宽空格实现的编码,因为零宽空格不占据空间,所以看不出它的存在。

使用:在进行文本隐藏加密时,将需要隐藏的文字写在括号中,就像这样“你好(有才华),我好喜欢你(画的画)!”,然后加密即可隐藏括号内的文字。同时可以设定一个密码,这样只有知道密码的人才能解密隐藏的文字。密码可以是数字、字母和下划线,最多九位

零宽隐写

○ 特征:解密后明文与密文会分开显示,密文一般隐藏在第一个字后面

猪圈密码

○ 特点:只能对字母加解密并且符号无法复制,粘贴后会直接显示明文

猪圈密码(亦称朱高密码、共济会暗号、共济会密码或共济会员密码),是一种以格子为基础的简单替代式密码

与佛论禅

○ 特点:就是你看不懂的佛语

百家姓暗号

特征:不要多说当你看到一串百家姓的时候多半就是这个暗号了

卡尔达诺栅格码

○ 特征:把明文伪装成垃圾邮件,看着这么多内容,其实我只是加密了admin

莫尔斯电码

○ 特征:密文由不规律的.、/、-组成

○ 摩尔密码加密的字符只有字符,数字,标点,不区分大小写,支持中文汉字

Quoted-Printable

这种编码常用与邮件处理,只能对汉字进行编码,特征是=加两个大写字母或数字组合

文本加密为汉字

特征:将明文加密成各种繁体字后面带俩等号

02

文件分割

binwalk

○ 分析

○ Binwalk

○ 分离文件

○ Binwalk -e

foremost

○ foremost 文件名 -o 输出目录名

dd

【表哥有话说 第90期】Misc学习之编码和zip解密

03

文件格式

文件头

PNG (png),文件头:89504E47

JPEG (jpg),文件头:FFD8FFE1

GIF (gif),文件头:47494638

TIFF (tif),文件头:49492A00

ZIP Archive (zip),文件头:504B0304(显示字符串一般为PK)

Windows Bitmap (bmp),文件头:424DC001

ZLIB,是PNG IDAT块数据可选的压缩格式

CAD (dwg),文件头:41433130

Adobe Photoshop (psd),文件头:38425053

Rich Text Format (rtf),文件头:7B5C727466

XML (xml),文件头:3C3F786D6C

HTML (html),文件头:68746D6C3E

Email [thorough only] (eml),文件头:44656C69766572792D646174653A

Outlook Express (dbx),文件头:CFAD12FEC5FD746F

Outlook (pst),文件头:2142444E

旧版office MS Word/Excel (xls.or.doc or.ppt),文件头:D0CF11E0

MS Access (mdb),文件头:5374616E64617264204A

WordPerfect (wpd),文件头:FF575043

Adobe Acrobat (pdf),文件头:255044462D312E

Quicken (qdf),文件头:AC9EBD8F

RAR Archive (rar),文件头:52617221

Wave (wav),文件头:57415645

文件尾

zip文件的结尾以一串504B0506开始。

rar文件以C43D7B00400700结尾。

JPG文件结尾为FFD9。

PNG文件 结尾为000049454E44AE426082。

Gif文件结尾为3B

png图片

(固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头

(固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13

(固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)

(可变)13位数据块(IHDR)

前四个字节代表该图片的宽 00 00 03 84

后四个字节代表该图片的高 00 00 00 96

04

压缩包破解


Misc学习之编码和zip解密


暴力

○ 使用工具破解

zip伪加密

○ 原理:一个zip文件由三部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志

全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性!

第二个数字为奇数时 –>加密

第二个数字为偶数时 –>未加密

无加密

压缩源文件数据区的全局加密应当为00 00(504B0304两个bytes之后)

压缩源文件目录区的全局方式位标记应当为00 00(504B0304四个bytes之后)

假加密

压缩源文件数据区的全局加密应当为00 00

压缩源文件目录区的全局方式位标记应当为09 00

真加密

压缩源文件数据区的全局加密应当为09 00

压缩源文件目录区的全局方式位标记应当为09 00

明文攻击

○ 我们为ZIP压缩文件所设定的密码,先被转换成了3个4字节的key,再用这3个key所有文件。如果我们能通过某种方式拿到压缩包中的一个文件,然后以同样的方式压缩,选择不去爆破密码。这种方式便是已知明文。

○ 题目特征:有一个加密压缩包一个未加密压缩包(或者是一个文件)这个文件是加密压缩包的一部分

○ 同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的,所以可以用已知文件来找加密密钥,利用密钥来解锁其他加密文件

crc32碰撞

每个文件都有唯一的CRC32值,即便数据中一个bit发生变化,也会导致CRC32值不同。若是知道一段数据的长度和CRC32值,便可穷举数据,与其CRC32对照,以此达到暴力猜解的目的。但通常只适用于较小文本文件。

zip文件中crc32为未加密文件的校验码

比如这里有一个加密的压缩包,直接双击就可以看见其中信息,而且我知道其中全是数字,便可使用脚本爆破。

题目特征:文件本身内容很小,密码很复杂


文件修复

一般是文件头异常“504B0304”,改回来就行了


这次的分享到这里就结束了

我们下期再见啦!!Misc学习之编码和zip解密

想学习更多知识

长按下方的二维码关注我们哦

Misc学习之编码和zip解密

原文始发于微信公众号(SKSEC):【表哥有话说 第90期】Misc学习之编码和zip解密

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月19日14:05:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Misc学习之编码和zip解密http://cn-sec.com/archives/1795925.html

发表评论

匿名网友 填写信息