base64是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法。
base64 编码原理:
base64 取 3byte 的输入数据,放在 24bit 的缓冲区中,从高位往低位放置。不足 3byte 的,于缓冲区剩下bit 用0补足。然后,每次取出6个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
中的字符作为编码后的输出不断转换,直到输入数据全部转换完成。 如果剩下两个输入数据,则编码后的结果加上一个= ;如果剩下一个输入数据,则编码后的结果加上两个=。 编码后的字符串长度是原来的4/3。
base64编码详情可看:
Base64算法原理
0x1 base64 编码
1 |
|
0x2 base64 解码
1 |
|
0x3 ctf 例题
例题1
通过观察下面编码,可以知道只是替换了base64 的对应表,以及输入数据不足3byte,编码结果添加的特殊填充值=。只要解码时,只要修改base64对应表和特殊填充值。
1 |
|
例题2
题目链接
http://111.230.11.183:44444/encode_encrypt_hash/base64/base64_harder.php
1 |
|
从源码中,我们不知道base64对应的转换表,但可以控制参数code参数,输入任意数据得到加密的结果,即知道明文和密文,猜解base64转换表。
详情可看此文章:
此题的破解脚本如下:
1 |
#coding:utf-8 |
参考文章:
FROM :blog.cfyqy.com | Author:cfyqy
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论