bugku crypto wp上半部分汇总

1.滴答~滴
在这里插入图片描述
摩斯码,在线解开。
2.
在这里插入图片描述
栅栏密码,在线解就出flag了。
3.

在这里插入图片描述
Ook解密,由.?!Ook组成密文,在线网站解密
4.这不是摩斯密码

在这里插入图片描述
有点像jsfuck,发现又不是,因为不会出现大于号,查了一下发现brainfuck加密,在线网站解下就ok了。
5.easy_crypto
在这里插入图片描述
有点像二进制,发现去转文本失败了,看wp,发现是摩斯密码的另一种,用脚本解出来的,

from __future__ import print_function
a = input("input the string:")
s = a.split(" ")
dict = {'01': 'A',
        '1000': 'B',
        '1010': 'C',
        '100':'D',
        '0':'E',
        '0010':'F',
        '110': 'G',
        '0000': 'H',
        '00': 'I',
        '0111':'J',
        '101': 'K',
        '0100': 'L',
        '11': 'M',
        '10': 'N',
        '111': 'O',
        '0110': 'P',
        '1101': 'Q',
        '010': 'R',
        '000': 'S',
        '1': 'T',
        '001': 'U',
        '0001': 'V',
        '011': 'W',
        '1001': 'X',
        '1011': 'Y',
        '1100': 'Z',
        '01111': '1',
        '00111': '2',
        '00011': '3',
        '00001': '4',
        '00000': '5',
        '10000': '6',
        '11000': '7',
        '11100': '8',
        '11110': '9',
        '11111': '0',
        '001100': '?',
        '10010': '/',
        '101101': '()',
        '100001': '-',
        '010101': '.',
        '110011':',',
        '011010':'@',
        '111000':':',
        '101010':':',
        '10001':'=',
        '011110':"'",
        '101011':'!',
        '001101':'_',
        '010010':'"',
        '10110':'(',
        '1111011':'{',
        '1111101':'}'
        };
for item in s:
    print (dict[item],end='')

6.简单加密
在这里插入图片描述
看到后缀的AA,联想到base64的两个等于号,大胆猜测是凯撒,放到在线解密时,发现找不到==,发现在线加解密凯撒的局限性,字母只有26个字母,而不是按照ASCII码来移动,所以要自己写个脚本,只需要对应A和等于相差4,所以将密文所有字符的ASCII码都减4,得到flag,这边脚本我删了,不难写,
7.散乱的密文在这里插入图片描述
发现已经有flag的字符,不过排列是散乱的,题目也给了提示,所以猜测给的是顺序,6个字符为一组,手动排序一下,得到flag

在这里插入图片描述
@@字符要去掉,应该只是一个占位的作用
8.凯撒部长的奖励在这里插入图片描述
直接在线解密,最好就是看仔细一点,我第一次做,没怎么看仔细,找了半天。。
9.一段base64(老千层饼了,芜湖飞飞)
在这里插入图片描述
给了一堆的字符串,并且是base64,刚做的时候,理解是重复的一段base64,发现我错了,找不到,老老实实
到网站上解密,发现居然是
在这里插入图片描述
发现全是八进制的数字,把它转换成字符串看看,
在这里插入图片描述
又是十六进制,开始套娃了,再转换一次
在这里插入图片描述
发现是Unicode编码,转换成中文看看。
在这里插入图片描述
这玩意的意思,不是将里面的数字,转换成字符串吗。。
再来一次。
在这里插入图片描述
又是一次Unicode的方式不过,这种需要用html来解码,利用一个工具来搞,经过两次得出flag。
在这里插入图片描述
里面还有url编码,拿去解码就好了,可以看一下我之前的变量胡乱设的脚本:

import base64
import unicodedata
import urllib
import re
def convert_to_cn(text):
    # 需要将 × 这种先做补全,×
    text = re.sub(r'&#x([A-F0-9]{2});', r'&#x00\1;', text)
    return text.replace('&#x', '\\u') \
        .replace(';', '') \
        .decode('unicode-escape') \
        .encode('utf-8')
with open('base.txt') as f:
    p1=f.read()
p2=base64.b64decode(p1) #暗示是八进制的编码
p3=re.findall('\d+',str(p2))
#解码八进制
p4=p3
p5=""
for i in p3:
    p5+=chr(int(i,8))

#解码十六进制:
#先将十六进制数取出来
tmp=re.findall('\d+',p5)
#将十六进制再解码
p6=""
for i in tmp:
    p6+=chr(int(i,16))
print(p6)
#将Unicode码取出,再解码
tmp=re.findall('u[\d\w]+',p6)
tmp="".join(tmp).replace('u','\\u')
tmp=tmp.encode('utf-8').decode('unicode_escape') #python3unicode转中文
print(tmp)
#将里面的数字取出,转换成字符串
p7=re.findall("\d+",tmp)
p8=""
for i in p7:
    p8+=chr(int(i))
print(p8)

在这里插入图片描述
oOk加密,.!?典型
11.
在这里插入图片描述
brainfuck在线解密
12.
在这里插入图片描述
凯撒,gndk和flag肯定有某种联系,查ASCII码表,就能发现猫腻,写出脚本就得出flag了。
13.这不是md5
在这里插入图片描述
这题我去,题目说了这不是md5,我以为掩耳盗铃,结果是真的。。。,md5各种试,看了看wp,发现就是个十六进制。。
14.
在这里插入图片描述
在线解密就好了

posted @ 2020-03-26 17:05  YenKoc  阅读(301)  评论(0编辑  收藏  举报