MOCTF_CRYPTO_WRITEUP

0x01数据库密码

flag格式moctf{密码}题目如下:20岁的小刚,自幼热爱信息安全,一天他利用SQL注入漏洞入侵了XX公司的数据库,修改了数据库访问密码。网警不久便抓获了小刚,在小刚系统中发现了他做了入侵记录,上面写着一串字符串:D8EA7326QE6EC5916ACCDX6E0VC9D264C63,小刚说这与后台密码有关。聪明的你知道如何解密这条记录,帮助XX公司恢复密码吗?

看下就知道是md5但是长了3位,可以仔细观察发现A-F是属于16进制的去掉大于F的,解密得到flag。

MOCTF_CRYPTO_WRITEUP_第1张图片
md5

0x02 rot大法好

}rQbpar_gbE{sgpbz
使用rot13在线解密得到:
}eDocne_toR{ftcom
将其反过来就可得到flag
moctf{Rot_encoDe}

0x03 奇怪汉字

flag格式moctf{xxxxx}题目如下:2099年,年轻的江先生因为实在没钱于是将自己的魔法棒带到当铺出售,但当铺老板却给了他一张纸,上面这样写道:
由口中 由由夫 由由口 由由口 由中由
这个可以联想到当铺密码,出几个头就是几
102 117 110 110 121
将10进制转化成ascii得到
f u n n y

0x04 就是这个feel

恰恰 恰恰恰 恰绑恰绑 恰 绑绑恰绑{恰恰绑 恰恰恰 恰恰恰 恰绑绑}
只有2个汉字推测为摩斯电码
-- --- -.-. - ..-.{--. --- --- -..}
M O C T F{G O O D}

0x05 贝斯族谱

Vm0weGQxSXlSblJWV0d4WFlUSm9WRll3WkRSV01XeHlXa1pPYUZKc1NsWldSM1JQVmpGS2RHVkVRbFZXYkhCUVdWZHplRll4VG5OWGJGcFhaV3RhU1ZkV1kzaFRNVTVYVW01S2FGSnRhRzlVVm1oRFZWWmFjbHBFVWxSaVZrWTFWa2QwYTJGc1NuUlZiRkphWWtkU2RscFdXbXRXTVZaeVdrWndWMkV6UWpaV01uUnZWakZhZEZOc1dsaGlSMmhvVm1wT2IxTXhjRmhsUjBaWFlrZFNlVll5ZUVOV01rVjNZMFpTVjFaV2NGTmFSRVpEVld4Q1ZVMUVNRDA9=
base64在线多次解密得到:ngn_qp{qdudtms0u1fz}

MOCTF_CRYPTO_WRITEUP_第2张图片
base64

但是提交的flag格式为moctf共5位我们base64加密得到有6位,使用栅栏密码在线加解密得到:npdug{t1nqmf_dszqu0}

MOCTF_CRYPTO_WRITEUP_第3张图片
image.png

最后尝试发现moctf+1位正好是npdug。所以应该使用凯撒密码移动25位。之前做杂项我们已经写了一个了,改改数字就行。

#! /usr/bin/python
# coding:utf - 8
# autho:czy

import string
lowercase = ['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']
uppercase = ['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']
c_txt = "npdug{t1nqmf_dszqu0}"
p_txt = []
for i in range(len(c_txt)):
    x = (ord(c_txt[i]))
    if x>96 and x<123:
        y = x+25
        if y>122:
            z = lowercase[y-123]
            p_txt.append(z)
        else:
            p_txt.append(chr(y))
    elif x>64 and x<91:
        y = x+25
        if y>90:
            z = uppercase[y-91]
            p_txt.append(z)
        else:
            p_txt.append(chr(y))
    else:
        p_txt.append(chr(x))
print("".join(p_txt))

运行得到flag

flag

0x06贝斯族谱升级版

R1pDRE1SUldHTTNUSU5SV0c1QkRNUkJUR0UzRElOUlVHWkJUTU5KVklZM0RHTlpTRzQ0VE9NQlhHUVpUQU4yRQ==
这个一看就是base64,解密后得到:
GZCDMRRWGM3TINRWG5BDMRBTGE3DINRUGZBTMNJVIY3DGNZSG44TOMBXGQZTAN2E
这个就不能继续用base64解密了,这个让我想起之前做过的一道题,全大写字母和数字可能是属于base32,果然使用base32解密后又得到:
6D6F6374667B6D3164646C655F6372797074307D
接下来继续用base16解密得到flag:
moctf{m1ddle_crypt0}

0x07卡哇伊

0x08 我觉得ok

https://www.splitbrain.org/services/ook
Brainfuck / OOK!混淆/编码这个工具可以运行用Brainfuck和Ook编写的程序!编程语言并显示输出。
它也可以采用纯文本并将其作为上述语言的简单程序的源代码进行混淆。
所有艰苦的工作(比如实际理解这些语言是如何工作的)都是由Daniel Lorch和他在PHP中的Brainfuck解释器完成的

在线转化下就行

MOCTF_CRYPTO_WRITEUP_第4张图片
flag

你可能感兴趣的:(MOCTF_CRYPTO_WRITEUP)