目录
前言
在渗透测试中,一些敏感信息比如密码会采用加密处理,我们必须要了解常见的加密方式,才能为安全测试做准备。
一、常见加密编码等算法解析
MD5
下面是supersoft软件
0-9,a-z组合
MD5很常见的加密,不能逆向的破解。
虽然也可以解密。
SHA
这个SHA长度不一样,后面数字越大,密文长度越大,长度就是固定的。
0-9,a-z组合
不需要理解算法怎么加密,就只需要看他的规律,然后去解密。
进制
时间戳
时间戳(Unix timestamp)转换工具 - 在线工具
时间戳百度百科
在数据库里面,进入用户的登录的时间的时候,或者用户注销等时间,不会使用2021-08-13 18:10:47这样子的格式,他会使用1628849448时间戳的格式,
URL
浏览器只会解密一次。
二重、三重加密一般是自己进行绕过的时候。
网站上看到%数字,表示是URL编码,加空格就转换成%–的编码。
这个%31可能会进行二次加密,会让人误会,如果直接写%31,有可能对方会把%31在进行转换,也可能会识别。
如果看到%31,你得想到很有可能是二次加密。
BASE64
常见的传输8Bit字节码的编码方式。
0-9,a-z(大小写随机组合),是区分大小写的。
长度随着明文长度增加,明文多长,密文越长。
经常会在字符串后面出现等于号。
常见编码:代码、密码、参数。
浏览器只做一次加密,在渗透绕过的时候可能会使用二次,三次加密方式
unescape
%u+4位的数字,对应两位字符,主要应用WEB应用上
AES
比较高级一些
必须有密码和偏移量,否则无法进行解密
逐渐在取代MD5
DES
类似于BASE64,有时候+会出现字符串里
最好加密,解密的时候用一个平台,可能参数不一样
二、常见加密形式算法解析
-
直接加密
-
带偏移
-
带干扰
-
带位数
-
带salt
-
带密码
-
带模式
-
自定义组合(自己写的加密算法)
-
等
三、常见加密方式
- 枚举
- 自定义逆向算法
- 可逆向算法
四、常规加密算法的特性
长度位数,字符规律,代码分析,搜索获取(在网上搜索,看网上那种加密和当前的类似)等
演示一、某个CTF比赛题目
加密代码
下载下来,我们来看一下加密的代码
加密顺序:先md5,在ord,在base64
解码顺序:从后往前,再base64,再ord,再md5
解密代码
解题思路:加密是怎么写的,解密就反过来写
演示二、某CMS密码加密解密
md5+salt
部分CMD密码加密形式-wp,dz等
https://www.discuz.net/
我们来看一下加密形式
演示三、URL加密地址的漏洞测试——SQL注入漏洞测试(只需要了解过程)
1.背景介绍
此WEB业务环境对参数进行了AES加密,为了防止参数产生SQL注入,也是防止SQL注入产生的一种方法,但是这种方式就安全了么?
学会攻击、学会修复
2.实训目标
- 1、掌握信息泄露的方式;
- 2、了解AES加解密;
- 3、了解PHP的基本语法;
- 4、掌握手工SQL注入;
- 5、了解MySQL数据库的结构;
3.解题方向
通过SQL注入方式,获取WEB业务系统的账号密码进行登录。
4.操作
这个加密的字符串应该就是在这个list.php文件里面
下载这个zip文件
打开
MCRYPT_RIJNDAEL_128
AES加密模式:CBC、数据块:128位、密码:ydhaqPQnexoaDuW3、偏移量:2018201920202021
解密得出:1_mozhe
继续看代码
在SQL注入时,要将1 and 1=1或者其他payload共同按格式加密之后才可以进行
后面的注入就不说了,还没学习到。
涉及资源
https://www.mozhe.cn
https://www.cmd5.com
http://tool.chacuo.net/cryptaes
https://ctf.bugku.com/challenges
https://www.cr173.com/soft/21692.html
https://www.discuz.net/