2 3 4 5 6 7 8 9 10 11 12

BUUCTF-加密1

MD5

打开题目下载得到一个文件夹,打开文件夹里的文本得到一串MD5的密文,拿去解密即可得到flag.

一眼就解密

打开就看见题目给的一行base64编码,直接拿去解密即得到flag

Url编码

题目已经很明显了,就是url编码的,只需拿去解码即可

看我回旋踢

打开题目下载压缩包后,文本内写着一段ROT13字符串

ROT13(回转13位,rotate by 13 places,有时中间加了个连字符称作ROT-13)是一种简易的替换式密码。
 
ROT13被描述成“杂志字谜上下颠倒解答的Usenet点对点体”。ROT13 也是过去在古罗马开发的凯撒加密的一种变体。
特点:

套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后的对应字母, 有需要超过时则重新绕回26英文字母开头即可。

只有这些出现在英文字母里头的字元受影响;
数字、符号、空白字元以及所有其他字元都不变。

直接拿去解密即可得到flag。

摩丝

有题知为摩斯编码,直接拿去解密即可得到flag。

password

下载压缩包,打开里面文本得到以下内容

从内容中可以判断出key=flag,里面的内容可以大概猜测一下,首先直接用生日当密码,结果提交的flag错误,然后就要考虑到他的名字,加他名字的首字母小写在生日前面,即可得到正确的flag。

变异凯撒

下载压缩包,打开里面文本得到以下内容

此时还用前面‘看我回旋踢‘ 的操作得到的flag是错的。

密文:afZ_r9VYfScOeO_UL^RWUc,看看能否与ctf 或者flag 对应上

 a:97  f:102  Z:106   _:95                                                            
 c:99  t:116   f:102   {:123

 f:102  l:108  a:97   g:103

由规律可以看出 a→f: 移动了5 f→l:移动了6 后面依次移动了7、8…… 此时按照这种移动规律,去写代码

def b_kaisa(mstr):
    j = 5
    i = 0
    lmstr = []
    for i in range(len(mstr)):
        m = ord(mstr[i])          # 将密文的第i个字母变为其ascii码值
        m = m + j                 # ascii值+j
        lmstr.append(m)           # 将递进后的ascii值存入列表lmstr[]
        i = i+1
        j = j+1
    return lmstr


if __name__ == '__main__':
    m_str = 'afZ_r9VYfScOeO_UL^RWUc'    # 密文
    lstr = []
    lstr = b_kaisa(m_str)
    print lstr


工具:https://www.qqxiuzi.cn/bianma/ascii.htm

Quoted-printable

下载压缩包,打开里面文本得到以下内容

由题知这是Quoted-printable编码,拿去解密即可得到flag。

Quoted-printable编码是多用途互联网邮件扩展(MIME) 一种实现方式。其中MIME是一个互联网标准,它扩展了电子邮件标准,致力于使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。目前http协议中,很多采用MIME框架!quoted-printable 就是说用一些可打印常用字符,表示一个字节(8位)中所有非打印字符方法!

方法
    任何一个8位的字节值可编码为3个字符:一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值.例如,ASCII码换页符(十进制值为12)可以表示为”=0C”, 等号”=”(十进制值为61)必须表示为”=3D”. 除了可打印ASCII字符与换行符以外,所有字符必须表示为这种格式.

    所有可打印ASCII字符(十进制值的范围为33到126)可用ASCII字符编码来直接表示, 但是等号”=”(十进制值为61)不可以这样直接表示.ASCII的水平制表符(tab)与空格符, 十进制为9和32, 如果不出现在行尾则可以用其ASCII字符编码直接表示。如果这两个字符出现在行尾,必须QP编码表示为”=09″ (tab)或”=20″ (space).

    如果数据中包含有意义的行结束标志,必须转换为ASCII回车(CR)换行(LF)序列,既不能用原来的ASCII字符也不能用QP编码的”=”转义字符序列。 相反,如果字节值13与10有其它的不是行结束的含义,它们必须QP编码为=0D与=0A.

    quoted-printable编码的数据的每行长度不能超过76个字符. 为满足此要求又不改变被编码文本,在QP编码结果的每行末尾加上软换行(soft line break). 即在每行末尾加上一个”=”, 但并不会出现在解码得到的文本中.

    例如:If you believe that truth=beauty, then surely mathematics is the most beautiful branch of philosophy. 编码后结果是

    If you believe that truth=3Dbeauty, then surely=20=
    mathematics is the most beautiful branch of philosophy.

Rabbit

下载压缩包,打开里面文本得到以下内容

将这段字符串进行Rabbit解密即可得到flag。

篱笆墙的影子

下载压缩包,打开里面文本得到以下内容

由题目的“篱笆墙”可以想到有可能是栅栏密码。直接拿去解密即得到flag

RSA

下载压缩包,打开里面文本得到以下内容

使用工具 RSA-Tool2 by tE来得出flag-->Private Exponent(D)

先将e,p,q输入进去,再点击Calc.D,获得d。(工具里的有相应的大写对应提示)

如果题目换一种问法:给出的是n和e的话,首先需要先输入n和e,点击Factor N(分解),得到p,q,再重复上一步步就能得到d。

注:Public Exponent这里要使用16进制的数,如果公钥e=17的话,就应该填入十六进制的11(自己拿去在线工具转换)
posted @ 2021-10-20 11:49  MrDevil  阅读(198)  评论(0)    收藏  举报