第八天
本课意义:
1.了解加密编码进制在安全测试中的存在
2.掌握常见的加密解密编码解码进制互转的操作
3.了解常见的加密解密编码解密进制互转的影响
一、传输加密编码-发送回显
- 数据在传输的过程中进行了编码,对方的服务器可能会在接收的时候进行解码再带入
- 错误做法:如果我们还是按照自己原有思路不对自己的Payload(攻击语句)进行同样的编码的话,传入过去的数据就是不认识的东西,测试则无效
- 正确做法:测试的时候也要进行对Payload同样的加密或编码(保持同样的加密格式)进行提交
- 一般进行安全测试漏洞的时候,通常都会进行数据的修改增加提交测试,需要了解数据的格式、加密、编码的方式
- 以数据正确的格式发送、接收才行
登陆的数据包
用户名:admin 密码:123456
MA5加密算法
username=admin&password=123456
username=admin&password=e10adc3949ba59abbe56e057f20f883e
如果现在我进行密码的破解爆破
那在传入账号密码的值的时候
字典文件:
- 账号信息什么都不用改,直接去替换username=值即可
- 密码需要进行密码算法,保证password=值同等加密才行,因为密码在传输时使用的是如上的加密格式,对方在收到数据时都要进行解密,如果直接明文输入,那么对方也会对明文进行解密,那解密后的结果就是不是密码了
影响:
漏洞探针,要搞清楚加密值,才能按照正确的加密值做修改进行漏洞测试
参考资料——传输数据编码:
BASE64 URL HEX ASCII
- BASE64值是由数字"0-9"和字母"a-f"所组成的字符串,大小写敏感,结尾通常有符号=
- URL编码是由数字"0-9"和字母"a-f"所组成的字符串,大小写敏感,通常以%数字字母间隔
- HEX编码是计算机中数据的一种表示方法,将数据进行十六进制转换,它由0-9,A-F,组成
- ASCII编码是将128个字符进行进制数来表示,常见ASCII码表大小规则:09<AZ<a~z
二、数据传输格式-统一格式
传输数据加密:同密码存储加密
传输数据格式:常规字符串 JSON XML等
-
30余种加密编码类型的密文特征分析(建议收藏)
https://mp.weixin.qq.com/s?__biz=MzAwNDcxMjI2MA==&mid=2247484455&idx=1&sn=e1b4324ddcf7d6123be30d9a5613e17b&chksm=9b26f60cac517f1a920cf3b73b3212a645aeef78882c47957b9f3c2135cb7ce051c73fe77bb2&mpshare=1&scene=23&srcid=1111auAYWmr1N0NAs9Wp2hGz&sharer_sharetime=1605145141579&sharer_shareid=5051b3eddbbe2cb698aedf9452370026#rd
-
CTF中常见密码题解密网站总结(建议收藏)
https://blog.csdn.net/qq_41638851/article/details/100526839
-
CTF密码学常见加密解密总结(建议收藏)
https://blog.csdn.net/qq_40837276/article/details/83080460
影响:
-
发送漏洞探针:
看发送方的数据格式是用来测试漏洞利用的时候,要注意是安装这个格式去测试去利用
-
回显数据分析:
理清楚数据格式便于分析,有些返回的值也是加密数据
三、存储密码加密-应用对象
1.常见加密编码进制等算法解析
MD5,SHA,ASC,进制,时间戳,URL,BASE64,Unescape,AES,DES等
2.常见加密编码形式算法解析
直接加密,带salt,带密码,带偏移,带位数,带模式,带干扰,自定义组合等
3.常见解密解码方式(针对)
枚举,自定义逆向算法,可逆向
4.常见加密解码算法的特性
长度位数,字符规律,代码分析,搜索获取等
5.识别算法编码方法:
1.看密文位数
2.看密文的特征(数字,字母,大小写,符号等)
3.看当前密文存在的地方(Web、数据库、操作系统等应用),
4.产生的地方不同就有不同的加密方式,例如网站喜欢用MD5加密,系统喜欢用NTML加密
5.不仅要知道是什么加密方式和算法,同样要学会对搞不出来的,平台不支持,工具不支持的,可以用字典爆破或者猜
系统有固定的加密方式,有些可以解密,有些无法解密,无法解密的原因就是密码过于复杂
[!NOTE]
一些常见的加密解密方式,并不是算法的逆向解密,而是通过碰撞解密,例如MD5算法就是一个不可逆向的算法。现在大部分的解密方式都是基于碰撞式的解密,越简单的密码越容易碰撞出结果,越复杂的密码例如
Huawei@123..da
现有算力根本无法破解想要识别密码的加密方式办法就是看源码
影响:
安全后渗透测试
得到了账号密码之后要去尝试登陆,如果解不出来就无法登陆
参考资料——密码存储加密:
MD5 SHA1 NTLM AES DES RC4
-
MD5值是32或16位位由数字"0-9"和字母"a-f"所组成的字符串
-
SHA1这种加密的密文特征跟MD5差不多,只不过位数是40
-
NTLM这种加密是Windows的哈希密码,标准通讯安全协议
-
AES,DES,RC4这些都是非对称性加密算法,引入密钥,密文特征与Base64类似
四、代码特性混淆-开发语言
代码混淆:
-
JS前端代码加密:
-
JS颜文字 jother JSFUCK
-
颜文字特征:一堆颜文字构成的js代码,在F12中可直接解密执行
-
jother特征:只用! + ( ) [ ] { }这八个字符就能完成对任意字符串的编码。也可在F12中解密执行
-
JSFUCK特征:与jother很像,只是少了{ }
后端代码混淆:
-
PHP .NET JAVA
-
PHP:乱码,头部有信息
-
.NET:DLL封装代码文件,加保护
-
JAVA:JAR&CLASS文件,,加保护
-
举例:加密平台 Zend ILSpy IDEA
-
应用场景:版权代码加密,开发特性,CTF比赛等
特定应用-数据库密文加密:MYSQL MSSQL Oracle Redis等
数据显示编码:UTF-8 GBK2312等
影响:
代码审计,逆向破解
写出来的程序对代码进行加密,加密之后无法知道编写源码的思路;保证源码的思路和编写流程他人无法得知,也无法对编写的程序进行二次开发
安全测试很重要的一点就是数据的格式和加密算法的熟悉,会大大提高我们挖洞找到漏洞的可能性
五、环境复现
1.传输数据-编码型&加密型等
1.某视频
https://tv.sohu.com/v/ dXMvMzUyMTU1MzUzLzUyMzcwMDEyNS5zaHRtbA==.html
文件名路径加密,base64解码
2.某Web站
1.打开一个网站的后台管理员页面,进行登陆测试
2.点击登陆之后监听到了错误的数据包,里面含有加密的密码
3.尝试使用Burp进行抓包,也能看到输入的账号和加密后的密码
3.APP-永恒雷霆
尝试登陆游戏账号,发现传输过去的数据都是加密的,具有自己特殊的算法。如果想要修改数据发送给对方,对方只会接收那种加密算法的数据,如果自己弄不懂这个算法,就无法进行测试
2.传输格式-常规&JSON&XML等
1.查看登陆时的数据包的写法
2.在开发环境中的格式有:数组、列表,根据格式一一对应
写法1——路径加密
btnPost=%E7%99%BB%E5%BD%95&username=admin&password=e10adc3949ba59abbe56e057f20f883e&savedate=1
写法2——函数引用
{
btnPost:'%E7%99%BB%E5%BD%95';
username:'admin';
password:'e10adc3949ba59abbe56e057f20f883e';
savedate:1;
}
修改之后都要按照原本的数据包的格式进行发送
3.密码存储-Web&系统&三方应用
Web网站
zzcms admin /123456 密文利用MD5加密
MD5(123456)=密文
Dz3.2 admin /123456 密文利用MD5加密再加密然后连接一个盐
MD5(MD5(123456).salt)=密文
Dz3.5 admin /123456 秘钥、偏移量、填充、加密模式 $2y$10$EUoN.RN.RHgyX2q7PZjyKeAC1JjZmOlzxoim3Vy7aNnnJnGJ4HKC.
PC系统
windows Aries /123456 密文利用NTML加密
32ed87bdb5fdc5e9cba88547376818d4
Linux kali /123456 密文利用crypt加密$y$j9T$glYiQhCWNL.Q9sL/M5cXO/$J6qRnOUQXn.6Hv7LzmJjToyraoKBL8wmq52l8a4Y7ND
1.ZZZCMS&Dz
ZZCMS
1.安装环境PHPStudy环境
2.输入真机IP地址访问安装
3.安装完环境正常显示如图
4.下载一个数据库连接工具Navicat Premium打开,新建MySQL数据库
5.打开创建好的zzcms数据库的admin表
6.复制密文密码到cmd5进行解密,发现就是之前配置的密码
7.进入网站后台进行登陆,发现登陆成功
DZ
1.在PHPStudy上搭建Dz网站,注意文件路径,端口,PHP版本
2.进行配置密码之后网站搭建完毕
3.连接到数据库进行数据查询,选取有数据信息的
4.找到含有数据信息的表进行查看
5.将密文复制到解密网站,解出明文密码
6.尝试登陆网站管理员用户,登陆成功
Dz3.5
1.在PHPStudy进行网站搭建
2.配置数据库密码和网站管理员密码,记得修改数据库名为其他的,不然和上个版本冲突
3.创建成功后连接数据库进行查询
4.复制密文尝试破解密码
2.Win&Linux
Windows
1.复制mimikatz_trunk到虚拟机中进行解压并打开
2.输入命令对本机密码进行查询
privilege::debug
sekurlsa::logonpasswords