欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

BugkuCTF Crypto wirte up

程序员文章站 2022-05-16 20:32:52
...

 

1.滴答~滴

BugkuCTF Crypto wirte up

(1)思路:很简单,一眼看出是摩斯密码,直接用工具解码得到flag

解密工具:CTFCrakTools

2.聪明的小羊

BugkuCTF Crypto wirte up

(1)思路:提示当中看到栅栏就想起栅栏密码,2个栅栏解密,得到flag

解密地址:http://tool.bugku.com/jiemi/

3.ok

BugkuCTF Crypto wirte up

(1)思路:直接用Ook解密,得到flag

解密地址https://www.splitbrain.org/services/ook

BugkuCTF Crypto wirte up

4.这不是摩斯密码

BugkuCTF Crypto wirte up

(1)思路:下载下来查看,确实不是摩斯密码,是一种叫Brainfuck的语言,解密出来就是flag

BugkuCTF Crypto wirte up

Brainfuck是一种极小化的计算机语言,按照”Turing complete(完整图灵机)”思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言,BrainF**k 语言只有八种符号,所有的操作都由这八种符号(> < + - . , [ ])的组合来完成。

解密地址:https://www.splitbrain.org/services/ook

BugkuCTF Crypto wirte up

5.简单加密

BugkuCTF Crypto wirte up

(1)思路:看到后面的字符串最后面的AA想到的是凯撒秘密base64的混合加密.对照ASCII,的ASCII是65,=的ASCII是61,偏移了四位(base64一般以'=='结束),再用base64解码得到flag
(2)脚本:python脚本将所有的字符都偏移四位

def main():
    string = 'e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA'
    list = [chr(ord(i)-4) for i in string]
    print(''.join(list))

if __name__ == '__main__':
    main()

打印出来为:

a2V5ezY4NzQzMDAwNjUwMTczMjMwZTRhNThlZTE1M2M2OGU4fQ==

解密工具:CTFCrakTools

6.一段Base64

BugkuCTF Crypto wirte up

(1)思路:打开是一段特别长的base64编码,base64解码,是8进制转义序列,

BugkuCTF Crypto wirte up

再转是16进制转义序列,

BugkuCTF Crypto wirte up

又转,出来为Unicode编码

BugkuCTF Crypto wirte up

解码出ASCII码,转义出的是html编码

BugkuCTF Crypto wirte up

解码

BugkuCTF Crypto wirte up

然后Unicode解码

BugkuCTF Crypto wirte up

为url编码,最后解出flag

(2)脚本:一直解到16进制的Python3脚本

import base64
import re

def main ():
    cipher_1 = '**' #为base64编码,太长省略
    plain_1 = base64.b64decode(cipher_1).decode('utf-8')
    # cipher = cipher.split('\\')[1:]

    cipher_2 = re.findall(r'\d+',plain_1)
    plain_2 = ''
    for i in cipher_2:
        plain_2 += chr(int(i,8))

    cipher_3 = re.findall(r'\d[0-9]|\d[a-z]',plain_2)
    plain_3 = ''
    for i in cipher_3:
        plain_3 += chr(int(i,16))

    print(plain_3)
if __name__ == '__main__':
    main()

(3)总结:要多熟悉常见的编码,看到就能认出来.

还有一种简单的方法,用coverter的工具

https://blog.csdn.net/pdsu161530247/article/details/74640746

解密网站:http://tool.chinaz.com/tools/unicode.aspx

解密工具:coverter

7..!?

BugkuCTF Crypto wirte up

另类的Ook编码

直接解出flag

解密地址https://www.splitbrain.org/services/ook

8.+[]-

BugkuCTF Crypto wirte up

(1)思路:很眼熟,就是上面的brainfuck编码,直接解出flag

9.奇怪密码

BugkuCTF Crypto wirte up

(1)思路:格式有点像flag的格式,对照ASCII表发现规律,gndk与flag的相差依次增多,直接写个脚本打印出类似flag的值

flag₧lei_ci_jiami

发现不对,₧不知道怎么回事,试着改成flag{lei_ci_jiami},成功

(2)脚本:

def main():
    string = 'gndk€rlqhmtkwwp}z'
    count = 0
    result = ''
    for i in string:
        count += 1
        result = result + chr(ord(i)- count)
    print(result)

10.托马斯.杰斐逊

BugkuCTF Crypto wirte up

(1)思路:这是个杰斐逊密码盘,根据第一个**跟密文,把第二行单独取出来,然后从**与密文一样的地方开始的部分,放到内容最前面
例如

<KPBELNACZDTRXMJQOYHGVSFUWI < **对应为:H

<HGVSFUWIKPBELNACZDTRXMJQOY <
最后得到下面的密文

HGVSFUWIKPBELNACZDTRXMJQOY 
CPMNZQWXYIHFRLABEUOTSGJVDK 
BVIQHKYPNTCRMOSFEZWAXJGDLU 
TEQGYXPLOCKBDMAIZVRNSJUWFH 
SLOQXVETAMKGHIWPNYCJBFZDRU 
XQYIZMJWAORPLNDVHGFCUKTEBS 
WATDSRFHENYVUBMCOIKZGJXPLQ 
CEONJQGWTHSPYBXIZULVKMRAFD 
RJLXKISEFAPMYGHBQNOZUTWDCV 
QWXPHKZGJTDSENYVUBMLAOIRFC 
GOIKFHENYVUWABMCXPLTDSRJQZ 
LTDENQWAOXPYVUIKZGJBMCSRFH 
ENYSRUBMCQWVJXPLTDAOIKFZGH 
SWAYXPLVUBOIKZGJRFHENMCQTD

明文为是按列来读取的

然后一列列去尝试,倒数第六列是flag

最后提交的flag是小写

11.zip伪加密

BugkuCTF Crypto wirte up

(1)思路:标题很明确,只要知道可以直接就解了

关于zip伪加密:https://blog.csdn.net/qq_41725312/article/details/81069184

12.告诉你个秘密

BugkuCTF Crypto wirte up

(1)思路:仔细观察发现字母都没超过F,猜测为16进制

解出来发现,应该为base54编码

cjV5RyBscDlJIEJqTSB0RmhCVDZ1aCB5N2lKIFFzWiBiaE0g

解出来几组字母与数字组合

r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM

是键盘密码,一组中对应的键盘位置回围绕一个键

比如 r5yg t就被围在他们中间

解出flag

解密网站:http://www.ab126.com/goju/1711.html

13.来自宇宙的信号

BugkuCTF Crypto wirte up

(1)思路:搜索'银河战队密码',没搜到什么,再试'银河密码',发现了对应的图

BugkuCTF Crypto wirte up

直接对应解出flag