基础

算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护

安全测试

  • 网站方面,会进行数据增删改提交进行测试 (数据格式的正确性)

简要说明:

密码传输加密:

  • MD5 SHA1 NTLM AES DES RC4
    • MD5值是32或16位位由数字”0-9”和字母”a-f”所组成的字符串
    • SHA1这种加密的密文特征跟MD5差不多,只不过位数是40
    • NTLM这种加密是Windows的哈希密码,标准通讯安全协议
    • AES,DES,RC4这些都是非对称性加密算法,引入密钥,密文特征与Base64类似
      应用场景:各类应用密文,自定义算法,代码分析,CTF安全比赛等

传输数据加密:

  • 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

传输数据-编码型&加密型等

例:

  • 某视频
  • 某Web站
  • 博客登录
  • APP-斗地主

数据编码解码

  • 服务端与客户端编码解码一致性
    • 数据发送前,对数据进行了编码;服务器接收到数据时,对数据进行解码后在进行下一步操作。
  • 测试时,需要对Payload进行对应的加密或者编码进行提交
    • 在测试时,必须对Payload(攻击语句)传输的数据进行对应的编码,服务器才能接受攻击测试,否则服务器将无法接受测试语句,语句无效。

加密类型:base64,md5

影响:漏洞探针
应用:很多,而且可以给自己开发的代码加版权+加密等。

传输格式-常规&JSON&XML等

格式类型:json,xml,常规……

数组格式:?
列表格式:带键值对

admin=xxxx&&passwd=xxxx =>加密或者不加密的横排格式

{
btnPost:"xxxx";
username:"xxxx";
passwd:"xxxxx";
savedate:1;
}

不能修改网站自身的加密于与格式。

例:

  • App-期H
  • APP-斗地主

影响:发送漏洞探针,回显数据分析

密码存储-Web&系统&三方应用

例:

  • ZZZCMS&Dz
  • Win&Linux
  • MSSQL&MYSQL
ZZZCMS使用MD5加密:
php支持5.0
username: admin
password: 123456
password-md5加密:e10adc3949ba59abbe56e057f20f883e
型如:md5(123456)=密文


Dz3.2(老牌博客网站)
php支持5.4
username: admin
password: 123456
password-md5加密:
型如:md5(md5(123456).salt)=密文
md5加密:
3510300a3be24daf27ff9afdfe3323cd:34fdbf ==>可以直接丢到下面的md5解密网站解密。
被加密的文本:3510300a3be24daf27ff9afdfe3323cd
密钥:34fdbf
密文和密钥被分开放置,例如不同的列。

Dz3.5(最新一版)--复杂加密
username: admin
password: 123456
加密密码的方式更加复杂。
6df04a92f53ca7cefee3b546a4e27b06

// 做测试时:
// 密文拿到测不出密文真实的值=>没得测=>该方向嗝屁~

加密算法破解:需要满足一定的条件才能破解=>有的算法需要的参数不是1
md5:不可逆向的算法。

# 加密算法种类:
加密算法(常见网站的,数据库的,操作系统的),自定义算法

$解密的方式
-- 碰撞解密(大部分的解密方式)
-> 简单式密码可以通过碰撞式解密解出。
-> 复杂密码可能性太多,无法碰撞解出。
-- 不是算法的逆向的换原解密

部分加密类型:
aes, des (密钥 偏移量 填充 模式等……)

网站和操作系统都有各自的加密方式,无法解出的是过渡复杂的。

md5加解密网站 ~~ 其他加密网站

影响 :安全后渗透测试

代码混淆-源代码加密&逆向保护

例:

  • PHP&JS混淆加密
  • EXE&JAR代码保护

影响:代码审计,逆向破解

https://indialms.in/wfp_login.php?r_id=1
base64编码
username=YWRtaW4=
https://indialms.in/wfp_login.php?r_id=MQ== 112123

数据在传输的时候进行编码 为什么要了解?

对方服务器可能会在接受的时候进行解码在带入
如果我们还是按照原有思路 不对自己的Payload进行同样编码的话 传入过去的东西就是不认识的东西 测试无效

正确 :测试的话也要进行payload同样的加密或编码进行提交

安全测试漏洞时候 通常都会进行数据的修改增加提交测试
以数据的正确格式发送 接受才行

登录的数据包:
admin 123456

MD5加密

username=admin&password=123456
username=admin&password=e10adc3949ba59abbe56e057f20f883e

如果现在我要进行密码的破解爆破

字典文件:
帐号什么都不用更改 去替换username=值即可
密码需要进行密码算法 保证和password=值同等加密才行

https://tv.sohu.com/v/dXMvMzg1MjM2NzE5LzQyNzUyODUzOC5zaHRtbA==.html

开发:数组 列表

btnPost=%E7%99%BB%E5%BD%95&username=admin and &password=e10adc3949ba59abbe56e057f20f883e&savedate=1


{
btnPost:"%E7%99%BB%E5%BD%95"
username:"admin";
password:"e10adc3949ba59abbe56e057f20f883e and";
savedate:1;
}


json xml 常规
x=123

x=123
{
x:123
}


zzzcms admin /123456 密文利用md5加密
md5(123456)=密文
dz3.2 admin /123456
md5(md5(123456).salt)=密文

dz3.5 admin / 123456
aes des(密匙 偏移量 填充 模式等)
$2y$10$OtsSmawENczg1BLcQCEn5OdLqJC9GLiDrClwEUooNnn8b609DfJc.
  1. 常见加密编码进制等算法解析
    1. MD5,SHA,ASC,进制,时间戳,URL,BASE64,Unescape,AES,DES等
  2. 常见加密编码形式算法解析
    1. 直接加密,带salt,带密码,带偏移,带位数,带模式,带干扰,自定义组合等
  3. 常见解密解码方式(针对)
    1. 枚举,自定义逆向算法,可逆向
  4. 常见加密解码算法的特性
    1. 长度位数,字符规律,代码分析,搜索获取等

本课意义

1.了解加密编码进制在安全测试中的存在
2.掌握常见的加密解密编码解码进制互转的操作
3.了解常见的加密解密编码解密进制互转的影响

识别算法编码方法

1、看密文位数
2、看密文的特征(数字,字母,大小写,符号等)
3、看当前密文存在的地方(Web,数据库,操作系统等应用)

拓展补充参考资料

传输数据编码

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

传输数据加密

同密码存储加密

传输数据格式

常规字符串 JSON XML等

密码存储加密

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等

部分资源:

https://www.cmd5.com
http://tmxk.org/jother
http://www.jsfuck.com
http://www.hiencode.com
http://tool.chacuo.net/cryptaes
https://utf-8.jp/public/aaencode.html
https://github.com/guyoung/CaptfEncoder

加密解密相关资料

1.30余种加密编码类型的密文特征分析(建议收藏)

2.CTF中常见密码题解密网站总结(建议收藏)

3.CTF密码学常见加密解密总结(建议收藏)

黑盒白盒

黑盒:看不到源代码

白盒:看得到源代码