编码加密(小迪网络安全笔记~

news/2024/12/4 23:26:36/文章来源:https://www.cnblogs.com/sjjjjer/p/18587485

附:完整笔记目录~
ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!

4.2 编码加密

  1. 引子:上一篇主要对常见数据传输类型做了总结,而本篇则对数据常见的编码&加密方式进行总结。

  2. 概述:编码&加密除了对后端敏感数据的保护,其在前端数据传输时往往也会被应用到。
    根据上一篇的学习,我们可以注意到,除二进制格式外,其余大部分传输格式中数据都是明文传输,这导致其向服务端传递的数据可以被任何人随意修改,也给了攻击者攻击的可能。
    为了避免这种情况的发生,开发者往往会先对需要传递的数据进行编码&加密再传输。这样当攻击者想要修改传递的数据时,必须也依据开发者所规定的编码&加密方式先对payload进行编码加密,提高了门槛,增加了攻击难度。

  3. 编码&Base64

    1. 概念:Base64编码会将每三个字节的二进制数据转换为4个字符的ASCII文本。

    2. 例子

      原数据:sjjjjjjer 666

      编码后数据:c2pqampqamVyIDY2Ng==

    3. 特征

      1. 明文越长编码后文本越长
      2. 大小写区分,数字&字母组合
      3. 编码后,一般不会存在 / 和 + ,且文本末可能会存在两个=
  4. 编码&URL

    1. 概念:URL编码用于将URL中非ASCII字符或特殊字符转换为以 % 开头的编码,因此也称百分号编码。

    2. 例子

      原数据:example.com/sjjjjjjer 666.html

      编码后数据:example.com%2Fsjjjjjjer%20666.html

    3. 特征

      URL格式再带 % ,基本均为URL编码。

  5. 加密&哈希算法

    1. 概念:哈希算法通过单向函数将数据转换为固定长度的字符串。常见的哈希算法如MD5、SHA等,以32位MD5为例。

    2. 例子

      原数据1:sjjjjjjer 666

      加密后数据1:49d8622c7fd08ed03638ee7228bf697a

      原数据2:sjjjjjjer

      加密后数据2:3c81489c7d3a09c6ad3eb60d9052d6c2

    3. 特征

      1. 固定位数,MD5加密为16或32位。
      2. 16进制字符串,即由 0-9 a-f 组成。
      3. 单向函数加密造成MD5算法不可逆,因此仅能通过密文碰撞破解。
  6. 加密&对称加密

    1. 概念:最传统加密方式,加解密共用同一密钥。常见的对称加密算法,如AES、DES、3DES等,由于AES更为可靠(密钥最低位数为128位),因此也是如今使用最多的对称加密方式。本篇以AES为例。

    2. 例子

      使用AES加密时,不仅仅需要双方规定密钥,同样也需规定偏移量、加密模式、填充。由于加密模式&填充仅有固定的几种类型,因此在对称加密中除密钥外最重要的也就是偏移量了。

      原数据:sjjjjjjer 666

      密钥:1234567890abcdef

      偏移量:1234567890abcdef

      加密模式&填充:ECB&zeropadding

      加密后数据(以Base64输出):rG0zMqyClmJE9Ldmj6BWQQ==

    3. 特征

      基本同Base64,但密文一般会出现 / 和 + 。

  7. 加密&非对称加密

    1. 概念:与对称加密不同,非对称加密加解密采用一对密钥,一般情况下使用公钥进行加密,私钥解密(公钥公开,私钥保密)。但这并不意味着仅能使用公钥加密,在非对称加密中私钥也可以用来加密,相应的应使用公钥解密,这也是我们常说的私钥签名,公钥验签。
      常见的非对称加密算法,RSA(最著名)、ECC(基于椭圆曲线...)。本篇以RSA为例

    2. 例子(公私钥为平台示例)

      原数据:sjjjjjjer 666

      公钥:

      -----BEGIN PUBLIC KEY-----
      MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDHc+PP8LuTlBL1zCX+lh9kcur
      gHHIXFnV/tDK789DaJuhwZvQ1lu5Zdcn+ULbNUKkB6b5tCP0sZxlpoCVKMyKHtde
      h/YGXwBD8sMc+XcRs0eh3/tyr4EoBu3bomzHWDGmHjH/F5GotFTrGcB6xQwAROy4
      mT5SketlQ3c7tucI+QIDAQAB
      -----END PUBLIC KEY-----
      

      加密后数据(以base64输出):XJvQMLNI8355fRZ/1SE33DjtwmX4zWFezYSesV/lD6JLv6amBoaodg5lyZd+vOZos603l19j3tjb9NnnguXYd3MCuyw33Y4FtjuVeRlnuBc/ddWvHlR19LJcuZbSMy/id1twJa8CFKDOskeN87SmwzHpLD289pMtlEmop/F7Xn8=

      私钥:(详见平台,实在太长了就不粘了)

      解密后数据:sjjjjjjer 666

    3. 特征

      基本同AES,但密文长度较长。

      补:在线对称&非对称加解密平台,http://tool.chacuo.net/cryptrsapubkey

  8. 加密&自定义

    1. 概念:开发者自定义加密算法(一般基于非对称/对称加密改良),往往被应用于加密传输数据。

    2. 例子(以某通登录框为例)

      image-20241204200435038

      显然,这种密文格式并不符合我上述所提到的几种,称这种加密方式为自定义加密。那当我们遇到这种加密方式该怎么办呢?
      由于所有加密操作均在发包前也就是前端实现,那我们能不能通过调试找到前端开发者自定义的加密算法代码呢,若能成功找到,是不是就可以利用开发者的加密代码加密我们的payload,从而绕过自定义加密进行测试呢。这也是我们所常说的JS逆向。

  9. 总结&再扩展
    由上文的介绍,我们对不同的编码&加密方式有了基本的认知,那当遇到了编码加密的情况时该如何解决呢?由于编码&加密往往存在两种应用场景,因此分别对这两种场景进行讨论。

    数据类型/应用场景 后端敏感数据 前端数据加密传递
    编码(Base64) 反编码 payload Base64编码
    哈希加密(MD5) 在线平台/脚本碰撞解密 payload MD5加密
    对称加密(AES) 找密钥&偏移量,逆向解密 前端找密钥&偏移量加密payload
    非对称加密(RSA) 找私钥,同上 前端找公钥加密payload
    自定义加密 后端找解密算法??? 前端找加密算法,利用开发者自己的算法加密
    (注:上述加密类型也可用该方法,依据实际情况选择)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/846916.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试Gpt的质量插件,挺好的

可以用油猴脚本试试检测IP质量,也是L站看到的 油猴地址:https://greasyfork.org/zh-CN/scripts/517144-chatgpt-helper 来源:https://linux.do/t/topic/258522

不出网(小迪网络安全笔记~

引子:上一章主要对常见的抓包软件&技术做了介绍。本章则主要介绍无回显&不出网,包括什么是无回显&不出网、无回显&不出网对渗透测试造成的影响、测试者遇到了无回显&不出网该如何解决。至于迪总为什么要在基础入门讲这些,可能是为了后面Web篇和内网篇做…

Task05 拓展01

Task 05 条件Conditionals IF 语句IF Else 语句IF-ELIF-ELSE语句IF-ELSE推导式 def abs7(n)return n if (n>=0) else -ndef abs7(n):if n >=0:return nelse:return -nMATCH-CASE语句 match subject:case <pattern_1><action_1>case <pattern_2><act…

Web额外配置(二)(小迪网络安全笔记~

引子:本篇继续介绍一些Web服务常用的额外配置,如堡垒机、蜜罐、API等。附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正! 1.1.4 Web额外配置(二)引子:本篇继续介绍一些Web服务常用的额外配置,如堡垒机、蜜罐、API等。堡垒机概念:从运维…

Web2.0架构(小迪网络安全笔记~

目前大部分Web资产架构为1. 通过ip/域名进行资产访问2. 资产基本组成:操作系统 + 中间件 + 源码 + 数据库附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正! 1.1.1 Web2.0架构目前大部分Web资产架构为通过ip/域名进行资产访问 资产基本组成:操…

研途无忧-beta冲刺

研途无忧-beta冲刺 一: alpha冲刺后项目还存在的问题及其探索思路和解决过程问题一:页面详情和加油站的数据同步问题 详细描述: 当前页面详情和加油站的数据同步功能尚未实现,包括点赞、收藏、评论和关注等功能。此外,发布帖子页面也尚未完善,需要进一步开发和优化。 探索…

75种K线基本形态

通过上一期的内容,我们已经了解了K线的绘制方法和关键因素,K线所包含的信息是极为丰富的,就以单根K线而言,一般上影线和阴线的实体表示股价的下压力量,下影线和阳线的实体则表示股价的上升力量。上影线和阴线实体比较长就说明股价下跌动量比较大,下影线和阳线实体较长则说…

我用了这款插件,工作效率大大提高啦~

备忘快贴 uTools 是一款呼之即来,即用即走的工具集软件。 备忘快贴是一款全新设计的备忘录 utools 插件,区别于手机自带的备忘录功能。传统的备忘录只是在需要时记录信息,而备忘快贴则不仅可以记录内容,还能轻松复制和粘贴,便于在多个场合使用。这款软件特别适合需要频繁编…

CDCL算法

1. CDCL伪代码 CDCL(CNF):副本 = CNF // 创建CNF的副本,不更改原CNFwhile true:while 副本含有单位子句:对副本使用单位传播;if 副本中含有取值为假的子句: // 发现冲突if 现在的决策层是0:return false; // 不能满足C = 子句学习(CNF, 副本) // 吸取教训根据C回到一个更早的决…

零基础快速入门软件测试

一、项目 1. 项目成员先简要了解一下软件项目组中所涉及的一些重要角色及关键词项目:软件研发项目,包括从前期项目预研、立项、组建项目团队、设计开发软件、测试调试、交付验收,以及软件运营等各项具体的工作 项目经理:软件项目的总负责人,既需要有广泛的计算机专业知识,…

全球气象数据ERA5的下载方法

本文介绍在ERA5气象数据的官方网站中,手动下载、Python代码自动批量下载逐小时、逐日与逐月的ERA5气象数据各类产品的快捷方法~本文介绍在ERA5气象数据的官方网站中,手动下载、Python代码自动批量下载逐小时、逐日与逐月的ERA5气象数据各类产品的快捷方法。ERA5(fifth gener…

高性能计算-NEON-图像旋转

1. 对512*512 png 四通道图像顺时针旋转90度 思路: 像素分块,对块内转置;再水平镜像。图像库使用 stb img 2. 代码 #include <stdio.h> #include <arm_neon.h>#include <stdlib.h> #define STB_IMAGE_IMPLEMENTATION #include "./stb/stb_image.h&quo…