小镇的夕阳|Web渗透测试——密码学基础
我们在渗透测试过程中 , 往往会遇到一些我们看不懂的代码 , 一般人都称之为乱码 , 往往都不会太在意 , 然而有一些所谓的乱码 , 其实是通过各种手段加密过的重要信息 , 只要知道它的加密方法 , 就可以获得重要的明文信息 , 反过来想 , 如果是无关紧要的信息 , 那持有者为什么要多费功夫进行加密处理呢?所以经过加密处理的信息 , 大部分都是一些重要信息 , 所以一些有经验的渗透测试者遇到“乱码” , 往往不会一扫而过 , 而是分析是否是经过加密的信息 , 有的甚至一眼就能看出是用的什么加密方法 , 今天我们就来讲讲渗透测试那些基础的密码学知识 。
常用网络编码网络编码其实也是加密的一种形式 , 但是并不是为了隐藏真正的信息 , 而是方便人、浏览器、服务器、计算机等应用服务及设备之间的数据识别和交换 , 经过网络编码后的数据都具有十分明显的特点 , 普通人见的多了后 , 一眼就能看出采用的什么编码方式 , 下面我们就介绍几种常见的网络编码方式 。
URL编码
URL编码用于浏览器和网站之间的数据交换 , 我们在使用浏览器访问网页时 , 尤其是输入一些GET请求参数时 , 当我们点击访问时 , 这些参数就变成我们看不懂的字符了 , 这其实就是经过了URL编码后传到了网站服务器进行识别了 , 我们可以通过BurpSuite工具的Decoder功能模块来演示一下URL编码结果我们以“”头条号主页地址为例 , 经过URL编码后结果如下图所示:
用于传输8Bit字节码的编码方式之一 , Base64就是一种基于64个可打印字符来表示二进制数据的方法 。 Base64编码是从二进制到字符的过程 , 可用于在HTTP环境下传递较长的标识信息 。 同样以“”头条号主页地址为例 , 经过Base64编码后结果如下图所示:
HEX编码又叫十六进制编码 , 是数据的16进制表达形式 , 是计算机中数据的一种表示方法 。 同我们日常中的十进制表示法不一样 。 它由0-9 , A-F组成 。 与10进制的对应关系是:0-9对应0-9 , A-F对应10-15 。 同样以“”头条号主页地址为例 , 经过HEX编码后结果如下图所示:
摩斯码
这个大家想必都是耳熟能详 , 在各类谍战影片中 , 经常看到情报工作者通过电台发出“长滴声“”或“短滴声”的信号来传递信息 , 摩斯码的基础格式是"."代表短音 , "-"代表长音 , "/"代表分隔符 , 就会出现类似"..../-/-/.--./.../---.../-..-./-..-./--/.--./.-.-.-/-/---/..-/-/../.-/---/.-.-.-/-.-./---/--"一段密文 , 我们可以通过在线摩斯码破译工具: , 来解密这段密文 , 原文为: , 如下图所示:
jsfuck是一种神奇的编码 , 能只用6个字符表达所有的式子 , 同样使用在线编码工具: , 就可以进行编码 , 识别他很容易 , 就像下图蓝框中这样子的东西就是jsfuck 。
Uuencode是二进制信息和文字信息之间的转换编码 , 也就是机器和人眼识读的转换 。 Uuencode编码方案常见于电子邮件信息的传输 , 目前已被多用途互联网邮件扩展(MIME)大量取代 , Uuencode将输入文字以每三个字节为单位进行编码 , 如此重复进行 。 如果最后剩下的文字少于三个字节 , 不够的部分用零补齐 。 在线解密网站: , 如下图所示:
移位密码是对明文字符在不改变其原形的基础上 , 按照密钥指示的规则 , 对明文字符进行位置移动的密码 。 简单理解 , 就是对明文字符的位置进行重新排列的一种密码 。 移位密码的攻击手段一般是结合已知的明文串进行爆破 。
例子:
明文m:wearefamily , 密钥k:25413
加密过程:
首先将明文m按照k的长度5 , 将明文划分为三组:weare||famil||y
根据密钥k更换文字顺序 , 25413||25413||2→eerwa||alifm||y
得到密文c:eerwaalifmy
栅栏密码
栅栏密码是一种规则特殊的移位密码 , 所谓栅栏密码 , 就是把要加密的明文分成N个一组 , 然后把每组的第1个字连起来 , 形成一段无规律的话 , 然后依次连接 。 所以栅栏密码的密钥仅仅指示一个数字k , 表示栅栏也就是分的每组的长度 , 栅栏密码的攻击方法也很简单 , 爆破或者分析出栅栏也就是分组的长度即可
例子:
明文m:wearefamily , 密钥k:4
加密过程:
首先将明文m按照k的长度4 , 将明文进行分组:wear||efam||ily
依次取出每组第1个 , 第2个 , 第3个......
wei||efl||aay||rm
得到密文c:weieflaayrm
替代密码
是指先建立一个替换表 , 加密时将需要加密的明文依次通过查表 , 替换为相应的字符 , 明文字符被逐个替换后 , 生成无任何意义的字符串 , 即密文 , 替代密码的密钥就是其替换表 。 替代密码的攻击手段大部分是进行词频分析 。
如果秘钥为13 , 十分简单 , 所有的英文字母在26个顺序中向后移动13个即可 , 如果移动到z了 , 回来向a移动 , 大小写也是分开的 , 举个例子:
明文m:asdfgzASDFGZZ , 密文c:nfqstmNFQSTMM 。
凯撒密码
通过把字母移动一定的位数来实现加密和解密 。 明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文 。 例如 , 当偏移量是3的时候 , 所有的字母A将被替换成D , B变成E , 以此类推X将变成A , Y变成B , Z变成C 。 由此可见 , 位数就是凯撒密码加密和解密的密钥 。 凯撒密码的攻击方法是词频分析 , 但是非常可惜的是由于位数的可能性太小了 , 所以直接爆破也是可以的 。
例子:
明文m:wearefamily , 密钥k:4 。
加密过程:
首先讲明文m中的每一位+4 , 然后得到密文c:aievijeqmpc 。
维吉尼亚密码
是在单一恺撒密码的基础上扩展出多表代换密码 , 根据密钥(当密钥长度小于明文长度时可以循环使用)来决定用哪一行的密表来进行替换 , 以此来对抗字频统计 。
明文:THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG , 密钥(循环使用 , 密钥越长相对破解难度越大):CULTURE
加密过程:
如果第一行为明文字母 , 第一列为密钥字母 , 那么明文字母'T'列和密钥字母'C'行的交点就是密文字母'V' , 以此类推 。
密文:VBPJOZGMVCHQEJQRUNGGWQPPKNYINUKRXFK
推荐阅读
- 小镇的夕阳|VISION D主机搭建,设计师主机就不能没有颜值:技嘉
- cnBeta|Classrooms预览版,思科面向教育市场发布Webex
- 千锋程序猿|web前端入门需要掌握的10个技术!
- 小镇的夕阳|为什么快递的服务质量越来越差?
- 小镇的夕阳|成本低至白菜价,全球首款蚕丝硬盘问世!可以轻松植入人体
- 孤惯|一款比phpmyadmin更好用的WEB数据库管理工具
- 小镇的夕阳|能让工作事半功倍的工程类软件
- 产业气象站|彻底弄清楚session,cookie,WebStorage的区别及应用场景
- 小镇的夕阳|20W快充+大电池,屏幕指纹手机跌至989元,华为彻底清仓
- 小镇的夕阳|华为位列第五,但也是中国唯一一个入围。,全球研发投入50强