基础入门-加密编码算法

前言

在渗透测试中,常见的密码等敏感信息会采用加密处理,其中作为安全测试人员必须要了解常见的加密方式,才能为后续的安全测试做好准备,本章内容都是关于各种加密编码等知识,便于后期的学习和发展

常见加密编码等算法解析

MD5,SHA,ASC,进制,时间戳,URL,BASE64,Unescape,AES,DES等

MD5

最常见,常见的有16位和32位,密文由A-Z、0-9组成,不可逆(即不能逆向的破解)。

16位的是32位中间的16位。

密码常用MD5加密

MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值

总体流程如下图所示,每次的运算都由前一轮的128位结果值和当前的512bit值进行运算。

image-20211111113215512

md5虽然不可逆,但可采用枚举的方法破解(即将明文进行加密,不断尝试,和你提供的密文进行匹配,用枚举的方法,提前把可能性搞出来,进行比对,从而找到明文)。

常用解密网站

https://www.cmd5.com/

SHA

密文由A-Z、0-9组成,SHA家族的五个算法分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,后四种称为SHA2,不可逆。

ASC:ASCII

进制

二进制

有两个特点:它由两个数码0,1组成,二进制数运算规律是逢二进一。

例如:二进制数10110011可以写成(10110011)2,或写成10110011B。

八进制

八进制的基数R=8=2^3,采用0,1,2,3,4,5,6,7八个数字,逢八进1。并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。八进制用下标8或数据后面加O表示。

例如:二进制数据 (11 101 010 . 010 110 100)2 对应八进制数据 (352.264)8或352.264O。

二进制/八进制换算表

二进制 八进制
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

十进制

十进制数是组成以10为基础的数字系统,有0,1,2,3, 4, 5, 6, 7, 8, 9十个基本数字组成。

十六进制

两个基本特点:它由十六个数码:数字0~9加上字母A-F组成(它们分别表示十进制数10~15),十六进制数运算规律是逢十六进一,即基数R=16=2^4,通常在表示时用尾部标志H或下标16以示区别,在c语言中用添加前缀0x以表示十六进制数。

例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。

时间戳

时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前已经存在。

unix时间戳是从1970年1月1日开始所经过的秒数,数据库记录时间相关的内容时常用。

在数据库里面,进入用户的登录的时间的时候,或者用户注销等时间,不会使用2021-08-13 18:10:47这样子的格式,他会使用1628849448时间戳的格式,

URL

统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法。URL编码,“%”加两位A-Z、0-9的组合,“ ”=%20

浏览器只会解密一次。
二重、三重加密一般是自己进行绕过的时候。

网站上看到%数字,表示是URL编码,加空格就转换成%–的编码。

image-20211111114907862

这个%31可能会进行二次加密,会让人误会,如果直接写%31,有可能对方会把%31在进行转换,也可能会识别。
如果看到%31,你得想到很有可能是二次加密。

BASE64

常见的传输8Bit字节码的编码方式。
0-9,a-z(大小写随机组合),是区分大小写的。
长度随着明文长度增加,明文多长,密文越长。
经常会在字符串后面出现等于号。
常见编码:代码、密码、参数。
浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式

Unescape

%u+4位的数字,对应两位字符,主要应用WEB应用上

AES

是一种安全的加密方式,加密时需要加密模式,密码,偏移量,数据块,填充,输出成base64或hex。密文中常常出现“/”“+”,用base64解密出来是乱码,有很大可能是AES加密。逐渐替代MD5,常见于注重安全的大型网站、安全比赛。

image-20211111140727881

image-20211111140808624

DES

类似于BASE64,有时候+会出现字符串里

最好加密,解密的时候用一个平台,可能参数不一样

常见加密形式算法解析

  • 直接加密
  • 带偏移
  • 带干扰
  • 带位数
  • 带salt
  • 带密码
  • 带模式
  • 自定义组合(自己写的加密算法)

常见加密方式

  • 枚举
  • 自定义逆向算法
  • 可逆向算法

常规加密算法的特性

长度位数,字符规律,代码分析,搜索获取(在网上搜索,看网上那种加密和当前的类似)等

某个CTF比赛题目

加密代码

image-20211111141040291

下载下来,我们来看一下加密的代码image-20211111141033421

加密顺序:先md5,在ord,在base64
解码顺序:从后往前,再base64,再ord,再md5

image-20211111141118458

解密代码

image-20211111141146526

image-20211111141156202

image-20211111141210225

image-20211111141217981

解题思路:加密是怎么写的,解密就反过来写

posted @ 2021-11-11 14:15  hirak0  阅读(216)  评论(0编辑  收藏  举报