编码、进制、加密
密码存储或加密特征
MD5 SHA1 NTLM AES DES RC4
MD5
MD5是一种哈希算法,不可逆。但是可以通过爆破、碰撞得到原来的明文。
MD5的值有两种
- 32位
- 16位
由数字0-9,字母a-z组成。
像这样:
1 | 密文:a8db1d82db78ed452ba0882fb9554fc |
好用的工具:
SHA1
值的特征与md5差不多,但是位数是 40 位
NTLM
NTLM是windows的哈希算法,标准通讯安全协议
AES、DES、RC4
对称加密,密文特征与base64类似
数据传输编码特征
BASE64 URL HEX ASCII
BASE64
BASE64值由数字、大小写字母组成,大小写敏感,结尾通常有符号 =
URL编码
URL编码有数字、大小写字母组成,大小写敏感,通常以&数字字母间隔
HEX编码
HEX是计算机数据的有一种表现方法,将数据进行十六进制转换,由数字、字母组成。
ASCII
ASCII ,很熟悉
数字编码应用场景:参数传递,后期waf绕过干扰,视频地址还原
JS前端代码加密
js颜文字 jother jsfuck
颜文字
就是这玩意
1 | ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+/*´∇`*/(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+((゚ー゚) + (゚Θ゚))+((o^_^o) - (゚Θ゚))+(゚Д゚)[゚ε゚]+(゚Θ゚)+((o^_^o) +(o^_^o))+(o^_^o)+(゚Д゚)[゚ε゚]+(o゚ー゚o)+ ((゚ー゚) + (゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (゚ー゚))+ ((゚ー゚) + (゚ー゚) + (゚Θ゚))+ (゚Д゚) ['c']+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_'); |
jother
有编码为字符串和编码为函数两种,特别脑残
这玩意是a的编码
1 | (![]+[])[+!![]] |
jsfuck
和jother差不多,但是没有 { }
这玩意是a的编码
1 | (![]+[])[+!+[]] |
应用场景:ctf
后端代码加密
PHP .NET JAVA
PHP
乱码,头部有信息
.NET
DLL封装代码文件
JAVA
jar 类
应用场景:版权代码加密,开发特性,ctf,绕过waf
其他杂七杂八的编码
Quoted-printable编码
特征是以 等号 + 十六进制两个字符 组成的一长串
像这样:
1 | =E7=94=A8=E4=BD=A0=E9=82=A3=E7=81=AB=E7=83=AD=E7=9A=84=E5=98=B4=E5=94=87=E8=AE=A9=E6=88=91=E5=9C=A8=E5=8D=88=E5=A4=9C=E9=87=8C=E6=97=A0=E5=B0=BD=E7=9A=84=E9=94=80=E9=AD=82 |
好用的在线工具:
http://www.hiencode.com/quoted.html
凯撒密码
它是一种替换加密的技术,明文所有字母都在字母表字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
像这样:
1 | 密文:gmbh{ifmmp_dug} |
好用的工具:
http://www.hiencode.com/caesar.html
埃特巴什码(Atbash Cipher)
明文密文对应关系如下:
明文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 密文:Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
就像这样:
1 | 密文:uozt{Zgyzhv_xlwv_uiln_xguhsld} |
好用的工具(转换结果记得修改大小写):
http://www.hiencode.com/atbash.html
多重base
各种base套娃,base64套base32套base16套base64……..
网上没有好用的多重解码在线工具,得自己写脚本
1 | import base64 |
当铺密码
汉字有多少笔画出头,就是转化成数字几
当铺密码为简单加密法,加密方式以汉字出头的笔画来计数
例:“由”字有一笔出头,则为1
王夫 井工 夫口 由中人 井中 夫夫 由中大=67 84 70 123 82 77 125
转换出来的数字多用于十进制转ascII
1 | 由田中 由田井 羊夫 由田人 由中人 羊羊 由由王 由田中 由由大 由田工 由由由 由由羊 由中大 |
对应的十进制:
1 | 102 108 97 103 123 99 116 102 115 1田4 111 119 125 |
对应的ascii字符
1 | flag{ctfsow} |
好用的工具: