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

image-20250921223607363

知识点

1、存储密码加密-应用对象

2、传输加密编码-发送回显

3、数据传输格式-统一格式

4、代码特性混淆-开发语言

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

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

测试也要进行payload同样的加密或编码进行提交,安全测试漏洞时候,通常都会进行数据的修改增加提交测试,以数据的正确格式发送,接收才行

本节要点

1.了解常见加密编码进制等算法解析

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

2.了解常见加密编码形式算法解析

直接加密,带salt,带密码,带偏移,带位数,带模式,带干扰,自定义组合等

3.了解常见解密解码方式(针对)

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

4.了解常见加密解码算法的特性

长度位数,字符规律,代码分析,搜索获取等

本课意义

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码表大小规则:09<AZ<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等

演示案例

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

不同Web、应用、APP传输数据可能使用不同加密、编码算法对明文数据进行加密或编码,因此在漏洞测试时我们提交的Payload也需和原来保持一致

编码类型/加密类型的安全测试影响:漏洞探针编写,即我们测试有无漏洞时,提交数据的编码型/加密型应当和原来保持一致

某视频

以搜狐视频为例,其URL如下

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

显然dXMvMzg1MjM2NzE5LzQyNzUyODUzOC5zaHRtbA==,就是加密/编码之后的文件名称

实际上这是Base64编码,将其解码后为us/385236719/427528538.shtml

操作演示略

某Web站-博客登录

这里使用Burp测试抓取Z-Blog登录时的数据包,操作演示略

登录的数据包分别输入用户名和密码分别为username=admin&password=123456,但在实际数据包中可看到传输的两个变量值分别为username=admin&password=e10adc3949ba59abbe56e057f20f883e(这里使用了MD5加密)

如果现在我要进行密码的破解爆破,在字典文件中

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

APP-斗地主

使用逍遥模拟器配置代理后,抓取欢乐斗地主数据包,可以看到无论是请求还是响应,大部分数据都是加密传输(操作演示略)

image-20250922223326122

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

不同应用、网页也可能使用不同的传输格式如Json、XML等,在安全测试时也需注意

传输格式安全影响:

  • 对请求数据而言,影响发送漏洞探针的数据格式,测试者的测试发送数据格式需和原来保持一致
  • 对响应数据而言,影响测试者对响应/回显数据的分析

APP-某期货APP-XML数据格式

使用逍遥模拟器配置代理后,抓取某期货APP数据包,可见使用了XML数据格式(操作演示略)

Burp中的MIME type列也会显示数据格式为XML

image-20250922224301955

APP-斗地主-Json数据格式

使用逍遥模拟器配置代理后,抓取欢乐斗地主数据包,可见使用了Json格式传输(操作演示略)

Burp中的MIME type列也会显示数据格式为JSON

image-20250922224432509

Web-Zblog-常规写法

Z-Blog登录使用的数据传输格式username=admin&password=e10adc3949ba59abbe56e057f20f883e,这是常规写法,即变量赋值

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

影响:安全后渗透测试

ZZCMS&Discuzx

此处,为了熟悉各类加密算法的密文特征,使用一些现成网站搭建工具搭建网站,然后观察其数据库中用户密码内容的存储,都可以使用PHPstudy快速搭建(操作演示略)

ZZCMS

搭建ZZCMS,配置用户名为admin,密码为123456

使用数据库连接工具连接Mysql数据库,观察ZZCMS系统的用户密码存储,在线MD5解密可以解出用户密码为123456

image-20250922225923499

Discuzx3.2

搭建Discuzx3.2,配置用户名为admin,密码为123456

连接至数据库,查看用户密码的加密保存方式,这是加盐MD5加密

image-20250922230442483

Discuzx3.3

搭建Discuzx3.3,配置用户名为admin,密码为123456

连接至数据库,查看用户密码的加密保存方式,此时找不到盐值

这是使用了复杂加密方式,可能带秘钥、加密模式、偏移量、填充等参数,需要研究其程序源码中的加密算法,才能编写相应解密算法

image-20250922231057447

Windows&Linux

Windows

Windows 10 管理员账号密码存储在SAM (Security Accounts Manager) 文件中 ,个文件位于系统盘(通常是C 盘)的Windows\System32\config 目录下

Windows系统对用户密码也进行了加密保存,算法是NTLM,可以使用mimikatz工具破解

当我们获得了一台主机的NTLM哈希值,我们可以使用mimikatz对其进行哈希传递攻击,这是后渗透的内容,此处略

Linux

Linux系统的用户密码存放在/etc/shadow目录下

image-20250922232146905

MSSQL&MYSQL

MSSQL
MySQL

MySQL数据库用户名的密码存放在

  • 库名:mysql
  • 表名:user
  • 列名:authentication_string

image-20250922232949554

cmd5解密也可识别出是MySQL5

image-20250922233142725

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

逆向保护:exe、apk程序进行加壳等保护

源代码加密:使用脚本语言对源码进行加密,攻击者看不出源码是怎么写的

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

PHP&JS混淆加密

php

书写一个简单php脚本文件

1
2
3
<?php
phpinfo();
?>

使用在线代码加密平台如https://www.toolzl.com/tools/phpcarbylamine.html对该脚本进行加密,可以看到文件变为乱码

1
2
3
4
<?php $O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}    
.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}
.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};
eval($O00O0O("JE8wTzAwMD0iVHBFUkZ5d0NWWlFqT0dEaVhCbmV4b2xMWU5nbXZJU3JNaHFhSktVZFdzYkh6ZnRBdWNrUFhvc2FLQkRUWklucmlGcXliQ0dtVmt4RWxKdFBqdlFBSGN6TnVmZ09VU2VXZExZcFJod01NcTlETldwZlRiQ2toRnhSSVA4a2ZYU2ZNZDQ9IjsgIAogICAgICAgIGV2YWwoJz8+Jy4kTzAwTzBPKCRPME9PMDAoJE9PME8wMCgkTzBPMDAwLCRPTzAwMDAqMiksJE9PME8wMCgkTzBPMDAwLCRPTzAwMDAsJE9PMDAwMCksICAgIAogICAgICAgICRPTzBPMDAoJE8wTzAwMCwwLCRPTzAwMDApKSkpOw=="));?>

但加密后能够正常访问(操作演示略)

JS

JSFuck 是一种利用JavaScript 仅用六种字符来执行代码,并使用诸如 +[] 构造数字 0,或通过访问特殊值(如 false、true、NaN、undefined、Infinity)的字符串表示来获取字母和数字。JSFuck 本质上是代码混淆技术,而非加密,可以通过在线工具、浏览器控制台或正则表达式进行还原。

使用在线工具如http://jsfuck.com或http://www.hiencode.com/jsfuck.html,将`alert(1)`通过JSFuck加密后为

1
(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+([][[]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[!+[]+!+[]+[!+[]+!+[]]]+[+!+[]]+([+[]]+![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[!+[]+!+[]+[+[]]]

EXE&JAR代码保护

为防止逆向破解,存在一些提供程序保护的程序如Virbox Protector,可提供诸如下述功能

image-20250922235453196

部分资源

部分资源:

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余种加密编码类型的密文特征分析(建议收藏)

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

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

https://blog.csdn.net/qq_41638851/article/details/100526839

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

https://blog.csdn.net/qq_40837276/article/details/83080460

站内搜索

没有找到内容!