编码基础

多个进制组合编码

用脚本进行转换(python2)

import binascii

text = 'd87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e'
solution = ' '
text2 = text.split(' ')
for x in text2:
  print x
  if x[0] == 'b':#binary
      solution += chr(int(x[1:],2))
  elif x[0] == 'x':#hexadecimal
      solution += x[1:].decode("hex")
  elif x[0] == 'd':#decimal
      solution += chr(int(x[1:]))
  elif x[0] == 'o':#octal
      solution += chr(int(x[1:],8))

print solution

二进制

压缩包

当二进制转换成文本时,有rar字段,可能为压缩包文件

用脚本进行转换

import binascii
file1 = open('1.txt')
s = file1.read()
file2 = open('1.rar','wb')
s1 = ''

for i in range(0,len(s),8):
  #print (type(int(s[i:i+8],2)))
  if ((int(s[i:i+8],2))<=15):
      print(hex(int(s[i:i+8],2)))
      s1 = s1+'0'+hex(int(s[i:i+8],2)).replace('0x','')
      print (s1)
  else
      s1 += hex(int(s[i:i+8],2)).replace('0x','')
print (s)
file2.write(binascii.a2b_hex(s1))
       

隐写 IDAT块

当得到一串01的数据时

如果统计长度为625,625开根为25,可以判断为正方形形状

用脚本转换

from PIL import Image
MAX = 25
pic = Image.new('RGB',(MAX,MAX))
str = '1111111000100001101111111100000101110010110100000110111010100000000010111011011101001000000001011101101110101110110100101110110000010101011011010000011111111010101010101111111000000001011101110000000011010011000001010011101101111010101001000011100000000000101000000001001001101000100111001111011100111100001110111110001100101000110011100001010100011010001111010110000010100010110000011011101100100001110011100100001011111110100000000110101001000111101111111011100001101011011100000100001100110001111010111010001101001111100001011101011000111010011100101110100100111011011000110000010110001101000110001111111011010110111011011'
i=0
for y in range (0,MAX):
  for x in range (0,MAX):
      if (str[i] == '1'):
          pic.putpixel([x,y],(0,0,0))
      else:
          pic.putpixel([x,y],(255,255,255))
      i = i + 1
pic.save('flag.png')

二进制转文本

在线转换二进制到字符串 (txttool.com)

BASE编码

BASE64、BASE58、BASE32、BASE16

BASE64

64个可打印字符,A~Z、a~z、0~9、+、/,64个可打印字符,“=”符号用作后缀填充

BASE58

相比Base64,Base58不使用数字”0″,字母大写”O”,字母大写”I”,和字母小写”l”,以及”+”和”/”符号。

BASE32

32个可打印字符,A~Z、2~7、32个可打印字符,“=”符号用作后缀填充

BASE16

16个可打印字符,A~F、0-9,16个可打印字符

BASE内容(flag)
BASE64ZmxhZw==
BASE583cr9Ae
BASE32MZWGCZY=
BASE16666C6167

BASE64异或

import base64

char = 'AAoHAR1UIFBSJFFQU1AjUVEjVidWUVJVJVZUIyUnI18jVFNXVRs='
char = base64.b64decode(char)

for j in range(128):
   flag = ''
   for i in char:
       flag += chr(ord(i) ^ j)
   if 'flag' in flag:
       print(flag)

BASE家族

import base64

a = ' '
while 1:
    try:
        a = base64.b16decode(a)
   except:
       try:
           a = base64.b32decode(a)
       except:
           try:
               a = base64.b64decode(a)
           except:
               print (a)
               break

PDF417

Barcode Reader. Free Online Web Application (inliteresearch.com)

PDF417条码是一种高密度、高信息含量的便携式数据文件,是实现**及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段。

首先得到一个飞机票图片

26.png

二维码修复 就不做操作了 参考上面的介绍。

下面的图片码为PDF417码,我们将下面的图片码进行在线扫描,发现没有数据。

将图片码进行反色处理。

27.png
28.png

将反色后的图片码进行在线扫描,出现了key的数据。

29.png

Quoted-printable

Quoted-printable编码|Quoted-printable解码|Quoted-printable编码原理介绍–查错网 (chacuo.net)

可打印字符引用编码”、“使用可打印字符的编码”,我们收邮件,查看信件原始信息,经常会看到这种类型的编码。

一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值。

=3Cmeta=20name=3D=22description=22=20flag=3D=22tidesec=22=20=2F=3E=0A

image-20210529213934546

UUENCODE

在线UUencode编码|在线UUencode解码|UU编码|UU解码|UUencode编码原理介绍–查错网 (chacuo.net)

uuencode是将二进制文件转换为文本文件的过程,转换后的文件可以通过纯文本e-mail进行传输,在接收方对该文件进行uudecode,即将其转换为初始的二进制文件。

6OMFX]L#]U],*9FQA9WMT:61E<V5C?0“

image-20210529214059086

XXencode

在线XXencode编码|在线XXencode解码|XX编码|XX解码|XXencode编码原理介绍–查错网 (chacuo.net)

XXencode,也是一个二进制字符转换为普通打印字符方法。跟UUencode编码原理方法很相似,唯独不同的是可打印字符不同。

Kjhasxg1xpxA8NalVNrhoOKFZQqJXTE++

image-20210529214245110

php混淆加密

在线PHP代码混淆/加密/解密工具 – TOOLFK在线工具人

有时候可以直接进行代码审计,有时候就要运行调试

37.png

css/js混淆加密

JS混淆加密压缩 – 站长工具 (chinaz.com)

38.png

VBScript.Encode混淆加密

VBScript.Encode 解密 – 千一网络 (cftea.com)

39.png

JSfuck

JSFuck – 在线加解密 (bugku.com)

6 个字符 ( ) [ ] !+ 来对JavaScript进行编码

42.png

jother

密文为8个字符! + ( ) [ ] { }

在浏览器中 console执行即可

43.png

Brainfuck

Brainfuck – interpreter online (doleczek.pl)

密文由+.<>[]’ && ‘!.?或者’+-.<>[]’等构成

image-20210529220333055

Ook

(https://www.splitbrain.org/services/ook)

密文由(Ook、Ook?、Ook!)等构成

a2f8f08a6299b2e94b904573d541373
ea7470b51a43740c0ad3135ad94301b

Npiet

BertNase’s Own – npiet fun!

特点文档是像素点的图片

48.png

转自CTF-MISC(编码篇) – FreeBuf网络安全行业门户

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇