当前位置: 首页 > news >正文

安全学习DAY08_算法加密

算法加密

请添加图片描述

漏洞分析、漏洞勘测、漏洞探针、挖漏洞时要用到的技术知识

  1. 存储密码加密-应用对象
  2. 传输加密编码-发送回显
  3. 数据传输格式-统一格式
  4. 代码特性混淆-开发语言

传输数据 – 加密型&编码型

安全测试时,通常会进行数据的修改增加提交测试

数据在传输的时候进行编码,对方服务器可能会在接收数据时进行解码再带入。

这种情况我们应对自己的payload进行同样的加密或者编码进行提交,不然传入的数据服务器不认识

当我们要对登录网站密码进行爆破时

字典文件:

账号一般是明文传输,不需要更改,替换username=值即可

密码需要进行密码算法,需要保证和password=值同等加密,否则无法识别

例如:网站登录,APP

影响:漏洞探针

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

在进行测试时,不仅要使用相同的加密/编码,还要保证相同的格式,数据格式不一致也不行

例子:

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

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

md5加密

zzzcms

md5加盐,md5(md5(123456).salt)=密文

dz3.5

ASE-128、DES

由密钥,偏移量,加密模式,填充量等决定,不知道密钥和偏移量就解不出来,而密钥和偏移量一般不会写在数据库中,而是写在源码中。要解密就需要拿到解密所需的密钥,偏移量等。

NTLM

windows密码一般用该加密

Linux查看/etc/shadow来看密码

现在大部分解密都是碰撞式解密,不是算法的逆向还原解密,而是直接进行匹配对比

数据库密码:

MySQL:mysql数据库中user表

复杂密文没有规律,看不出来,只能在源码中找,看负责加密的代码块是什么形式的。

识别算法编码方法

  1. 看密文位数(有些算法的编码位数固定的)
  2. 看密文特征(数字,字母,大小写,符号等)
  3. 看密文存在的地方(Web,数据库,操作系统等应用)

影响

安全后渗透测试

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

看不到代码,无法做代码审计发现漏洞了

加密平台

jsfuck,将js代码加密

virbox,防逆向

影响:代码审计

补充:

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

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

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

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

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

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

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

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

传输数据编码:

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等

部分资源:

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

http://www.lryc.cn/news/102116.html

相关文章:

  • OpenCloudOS 与PolarDB全面适配
  • 如何在Linux系统中使用yum命令安装MySQL
  • 在Ail Linux中手动配置IPv6
  • TCP如何保证服务的可靠性
  • 【云原生系列】openstack搭建过程及使用
  • 无涯教程-jQuery - Menu组件函数
  • Django用户登录验证和自定义验证类
  • json-server详解
  • MacOS Monterey VM Install ESXi to 7 U2
  • 哈工大计算机网络课程网络安全基本原理详解之:消息完整性与数字签名
  • K8s:K8s 20个常用命令汇总
  • DHCP防护原理
  • leetcode2434. 使用机器人打印字典序最小的字符串 出栈顺序 贪心+栈
  • 【程序设计】一文讲解程序设计目标:高内聚,低耦合
  • nginx mirror代码分析
  • Python代理模式介绍、使用
  • 《MySQL45讲》笔记—索引
  • Android usb host模式通信示例
  • 开源Blazor UI组件库精选:让你的Blazor项目焕然一新!
  • MATLAB RANSAC圆柱体点云拟合 (28)
  • 【AI】《动手学-深度学习-PyTorch版》笔记(七):自动微分
  • vuejs源码阅读之代码生成器
  • 【MySQL】视图(十)
  • 面试手写实现Promise.all
  • TCP网络通信编程之字符流
  • 佰维存储面向旗舰智能手机推出UFS3.1高速闪存
  • 降龙十八掌
  • 【项目设计】MySQL 连接池的设计
  • Ubuntu系统adb开发调试问题记录
  • 【宏定义】——检验条件是否成立,并返回指定的值