美文网首页CTF
蓝鲸安全CTF打卡第一期密码学WriteUp

蓝鲸安全CTF打卡第一期密码学WriteUp

作者: Eumenides_62ac | 来源:发表于2018-06-10 16:12 被阅读135次

    检查符号

    题目

    检查符号.png

    知识点

    摩斯密码、替换密码

    解题

    这道题很容易就可以看出是摩斯密码
    摩斯密码就是由'.'和'-'组成的密码
    先丢在sublime里转换下
    把。换成/
    把o转换成.
    把0转换成-
    直接丢工具里


    摩斯解码.png

    加上格式就是flag

    密钥生成

    题目

    RSA密钥生成.png

    知识点

    RSA密钥生成
    可以参考我的博客:https://brownfly.github.io/2018/04/22/%E5%88%9D%E8%AF%86RSA/#more

    解题

    RSA

    跑一下工具就出来了
    注意:这个工具的E处一定要是16进制的

    RSA解密

    题目

    RSA解密

    知识点

    zip伪加密、RSA解密

    解题

    下载下来题目,告诉我们需要解压密码
    这里就要涉及到伪加密的知识了
    解开伪加密有多种方法,包括用7z,在linux下直接打开,改16进制头等方法,我选择用ZipCenOp.jar这个工具来解密

    # 在cmd下
    $ java -jar ZipCenOp.jar r rsa.zip
    
    伪加密解密

    解密成功后,得到两个文件:flag和imhere俩个文件
    用notepad++打开imhere文件打开看到


    加密文件

    看到是RSA私钥文件,说明我们要用这个私钥去解密我们的flag文件
    这里就需要用到openssl文件了
    kali里自带了openssl工具

    # bash
    $ openssl rsautl -decrypt  -in flag -inkey imhere -out flag.txt
    

    得到flag.txt,里面就是我们需要的flag

    公平交易

    题目

    公平交易

    知识点

    play fair加密

    解题

    一种在线解密:http://www.practicalcryptography.com/ciphers/classical-era/playfair/

    playfair密码加解密.png
    另外一种用python来解
    # python3 
    # 在所在pycipher模块下导入
    >>> from pycipher import Playfair
    >>> Playfair('ZKLIPOAGSUMDWFHCBVTRYENXQ').decipher('FMGKYBXTSFBNCQDSPT')
    'WHALECTFISVERYFAIR'
    

    填空题

    题目

    填空题

    知识点

    utf-9编码,替换密码,进制ascii码转换

    解题

    下载得到一个叫做flag_is_here_rfc4042的文件
    看到rfc4042,知道了应该是utf-9编码了的文件
    用python2来解,首先要下载utf-9的库

    $ git clone https://github.com/enricobacis/utf9
    $ cd utf9
    $ python setup.py install
    

    使用如下脚本解码

    # python2
    import utf9
    f1 = open('flag_is_here_rfc4042','r')
    f2 = open('flag.txt','w')
    str1 = f1.read()
    print utf9.utf9decode(str1)
    f2.write(utf9.utf9decode(str1))
    f1.close()
    f2.close()
    

    获得如下文本


    flag.txt

    文本是由下划线_组成,还有+,=*,/和括号(),这里得知,每一个下划线代表了一个1
    使用如下脚本

    # python2
    import binascii
    _ = 1
    __ = 2
    ___ = 3
    ____ = 4
    _____ = 5
    ______ = 6
    _______ = 7
    ________ = 8
    _________ = 9
    f = open('flag.txt','r')
    a = f.read()
    print a
    

    得到一串数字5287002131074331513
    转换成16进制为495f346d2d6b3379
    转换成字符串就是最后的flagI_4m-k3y

    RSA破解

    题目

    RSA破解

    知识点

    RSA模数分解,RSA解密

    解题

    下载解压压缩包得到


    文件

    这是一个加密的flag文件和公钥文件
    我们先通过openssl来分析一下公钥是否可以被攻击

    $ openssl rsa -pubin --text -modulus -in public.pem
    Public-Key: (256 bit)
    Modulus:
        00:ca:00:f5:ed:7b:33:b9:bd:42:1e:77:31:8a:a1:
        78:e7:5d:ed:e3:cb:1b:c7:d4:7a:7d:14:3b:e7:49:
        1c:90:25
    Exponent: 65537 (0x10001)
    Modulus=CA00F5ED7B33B9BD421E77318AA178E75DEDE3CB1BC7D47A7D143BE7491C9025
    writing RSA key
    -----BEGIN PUBLIC KEY-----
    MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMoA9e17M7m9Qh53MYqheOdd7ePLG8fU
    en0UO+dJHJAlAgMBAAE=
    -----END PUBLIC KEY-----
    

    我们选中Modulus=CA00F5ED7B33B9BD421E77318AA178E75DEDE3CB1BC7D47A7D143BE7491C9025
    使用msieve153这个工具进行分解

    $ msieve153.exe 0xCA00F5ED7B33B9BD421E77318AA178E75DEDE3CB1BC7D47A7D143BE7491C9025 -v
    

    速度太慢,我选择http://factordb.com

    factordb.com
    得到p和q
    p = 290579950064240059571837821251441436997
    q = 314436328879392457343835667929324128609
    

    有了p,q和e,我们就可以用脚本生成私钥文件

    # python2
    import math
    import sys
    from Crypto.PublicKey import RSA
    
    keypair = RSA.generate(1024)
    
    keypair.p = 290579950064240059571837821251441436997
    keypair.q = 314436328879392457343835667929324128609
    keypair.e = 65537
    
    keypair.n = keypair.p * keypair.q
    Qn = long((keypair.p-1) * (keypair.q-1))
    
    i = 1
    while (True):
        x = (Qn * i ) + 1
        if (x % keypair.e == 0):
            keypair.d = x / keypair.e
            break
        i += 1
    
    private = open('private.pem','w')
    private.write(keypair.exportKey())
    private.close() 
    
    生成私钥文件

    我们再用到openssl工具

    $ openssl rsautl -decrypt -in flag.enc -inkey private.pem  -out flag.txt
    

    就得到了最后的flag

    相关文章

      网友评论

        本文标题:蓝鲸安全CTF打卡第一期密码学WriteUp

        本文链接:https://www.haomeiwen.com/subject/rivteftx.html