传输数据-编码型&加密型等
数据在传输的时候都需要编码解码,对方服务器在接收数据时,会进行解码再带入
安全测试需要对payload代码进行同样的加密或编码再进行提交。如果不对自己的Payload代码进行同样编码的话,传过去的数据服务器解码后无法识别,测试无效。所以必须保证数据的正确编码格式发送,对方服务器才能正确解码接收。
Base64编码 :
例子:
解码之前:https://indialms.in/wfp_login.php?r_id=MQ==
解码之后:https://indialms.in/wfp_login.php?r_id=1
MD5加密:
例子:
搜狐视频加密:https://tv.sohu.com/v/dXMvMzg1MjM2NzE5LzQyNzUyODUzOC5zaHRtbA==.html
https://tv.sohu.com/v/dXMvMzkzNDE4MzY5LzU3MzI0NzY4NS5zaHRtbA==.html
dXMvMzkzNDE4MzY5LzU3MzI0NzY4NS5zaHRtbA==为Base64加密
登录的数据包:
1 | username=admin&password=123456 |
字典爆破:
可以对密码进行破解爆破,替换password=的值即可
需要密码进行算法解密,需要保证password=的值同等加密和数据库的比对上才行
影响:进行漏洞探测的时候,为了不让轻易发现漏洞
传输格式-常规&JSON&XML等
JSON XML常规格式
影响:发送漏洞的时候需要按照对方格式上传,通过回显数据进行分析,分析解码回显的数据情况,判断是对的还是错的
传输常规格式例子:
1 | btnPost=%E7%99%BB%E5%BD%95&username=admin and &password=e10adc3949ba59abbe56e057f20f883e&savedate=1 |
JSON格式例子:
1 | { |
密码存储-Web&系统&三方应用
影响:安全后台渗透测试,没有关键因素包括密匙,偏移量,填充,模式等很难破解
大部分的解密都是碰撞式解密,不是算法的逆向的还原解密
保证了黑客知道了密文也解密不出来,需要知道全部的密匙,偏移量,填充,模式才能解密出来,没有就无法解密
ZZZCMS & Dz3.2 & Dz3.5例子
zzzcms
md5(123456)=密文利用md5加密
Dz3.2
md5(md5(123456).salt)=密文利用两层md5和salt加密
Dz3.5
aes des=密文利用密匙key,偏移量iv,填充,模式加密
Winows & Linux
NTLM是window的加密格式
MSSQL&MYSQL
MYSQL5是MYSQL的加密格式
识别算法编码方法
- 密文位数
- 密文的特征(数字,字母,大小写,符号等)
- 当前密文存在的地方(Web,数据库,操作系统等应用)
常见加密编码进制等算法解析
MD5,SHA,ASC,进制,时间戳,URL,Base64,Unescape,AES,DES等
常见加密编码形式算法解析
直接加密,带Salt,带密码,带偏移,带位数,带模式,带干扰,自定义组合等
常见解密解码方式(针对)
枚举,自定义逆向算法,可逆向
常见加密解码算法的特性
长度位数,字符规律,代码分析,搜索获取等
代码混淆-源代码加密&逆向保护
影响:影响的是代码审计,无法被别人看到源码,防止被逆向破解(例如添加VIP等功能)
例如:
PHP & JS混淆加密
PHP加密,JSFuck加密
EXE & JAR代码保护
拓展资料:
传输数据编码:
Base64 URL HEX ASCII
Base64值是由数字”0-9”和字母”a-f”所组成的字符串,大小写敏感,结尾通常有符号=
URL编码是由数字”0-9”和字母”a-f”所组成的字符串,大小写敏感,通常以%数字字母间隔
HEX编码是计算机中数据的一种表示方法,将数据进行十六进制转换,它由0-9,A-F,组成
ASCII编码是将128个字符进行进制数来表示,常见ASCII码表大小规则:0-9,A-Z,a-z
密码存储加密:
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特征:只用! + ( ) [ ] { }这八个字符就能完成对任意字符串的编码。
JSFuck特征:与Jother很像,只是少了{ }
后端代码混淆:
PHP .NET Java
PHP:乱码,头部有信息
.NET:DLL封装代码文件,加保护
Java:JAR&CLASS文件,加保护
特定应用-数据库密文加密:
MySQL MSSQL Oracle Redis等
数据显示编码:
UTF-8 GBK2312等