• ctf题目writeup(7)


    2019.2.3

    继续刷bugku的题,题目地址:https://ctf.bugku.com/challenges

    1.

    ook和brainfuck都到这个网站:

    https://www.splitbrain.org/services/ook

    flag{ok-ctf-1234-admin}

    2.

    +++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
    ++++[ ->+++ +<]>+ +++.< +++[- >---< ]>--- .---- .<+++ ++++[ ->--- ----<
    ]>--- ----- ----- .<+++ ++++[ ->+++ ++++< ]>+++ ++.<+ +++++ +[->- -----
    -<]>. <++++ ++++[ ->+++ +++++ <]>++ .<+++ [->-- -<]>- ----. <++++ +++[-
    >---- ---<] >---- ----. +++++ +..++ +++.+ .<+++ [->-- -<]>- --.<+ +++++
    +[->+ +++++ +<]>+ ++.++ +.+++ +++++ +.--- -.+++ ++.<+ ++[-> +++<] >++++
    ++.<


    这个就是brainfuck 还是到上述网站就行

    flag{ok-c2tf-3389-admin}

    3.

    这道题是莫尔斯电码对应ascii的转换:

    其实 摩斯电码中的 .就是0 -就是1
    也可以用python直接处理,或者你用文本编辑器替换嘿嘿。
    4.


    看到后面两个AA不由自主想到两个等号 ==
    A的ascii是65 =是61 所以写个脚本把所有符号往前移4位。
    def caesar(text):
        for i in range(len(text)):
            print("{}".format(chr(int(ord(text[i])-4))),end='')
    
    caesar('e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA')
    

      a2V5ezY4NzQzMDAwNjUwMTczMjMwZTRhNThlZTE1M2M2OGU4fQ==

    直接base64解密:

    key{68743000650173230e4a58ee153c68e8}

    5.

    这里散乱的方式需要按照这个提示重新排列,正好可以分为6个字符一组,然后他们目前的编号顺序是 2 1 6 5 3 4 所以我们把他们的编号变成 1 2 3 4 5 6就好了。

    flag{52048c453d794df1}@@(后面@删除就是flag)

    6.

    提示很明显,直接凯撒:

    这个就是找有意义的单词,很显然就是它了:

    SYC{here_Is_yOur_rEwArd_enjOy_It_Caesar_or_call_him_vIctOr_is_a_Excellent_man_if_you_want_to_get_his_informations_you_can_join_us}

    7.

    乍一看挺吓人的,直接base64:

    又是一大段:

    最多三个一组,最大是7,那就差不多是八进制。

    转成16进制:

    这就是unicode了。。。再转:

    flag{ctf_tfc201717qwe}

     8.

    其实这也是Ook加密,直接网站:

    flag{bugku_jiami}

    9.

    看这个格式应该是flag{。。。。}什么的。

    对比一下 g 左移一位是f  n左移两位是l 。。。以此类推。

    可以直接算或者写代码

    str='gndk€rlqhmtkwwp}z'
    j = 1
    for i in str:
        print(chr(ord(i)-j))
        j+=1
    

      

    flag{lei_ci_jiami}

    10.

    百度一下,这个是什么杰斐逊轮转加密:

    ,比如第一个密钥匙:2、密文匙:H

    把转盘第二行单独提出来 2: <KPBELNACZDTRXMJQOYHGVSFUWI <

    从H的地方一直剪切,把剪切的内容放在最前面,变成 2: <HGVSFUWIKPBELNACZDTRXMJQOY <

    依次类推把14行都按这样的方式整一遍就得到这个:

    2: <HGVSFUWIKPBELNACZDTRXMJQOY <
    5: <CPMNZQWXYIHFRLABEUOTSGJVDK <
    1: <BVIQHKYPNTCRMOSFEZWAXJGDLU <
    3: <TEQGYXPLOCKBDMAIZVRNSJUWFH <
    6: <SLOQXVETAMKGHIWPNYCJBFZDRU <
    4: <XQYIZMJWAORPLNDVHGFCUKTEBS <
    9: <WATDSRFHENYVUBMCOIKZGJXPLQ <
    7: <CEONJQGWTHSPYBXIZULVKMRAFD <
    8: <RJLXKISEFAPMYGHBQNOZUTWDCV <
    14:<QWXPHKZGJTDSENYVUBMLAOIRFC <
    10:<GOIKFHENYVUWABMCXPLTDSRJQZ <
    13:<LTDENQWAOXPYVUIKZGJBMCSRFH <
    11:<ENYSRUBMCQWVJXPLTDAOIKFZGH <
    12:<SWAYXPLVUBOIKZGJRFHENMCQTD <
    倒数第六列 连起来,注意要换成小写

    flag{xsxsbugkuadmin}

    11.

    这个就是伪加密,直接winhex改就好。

     flag{Adm1N-B2G-kU-SZIP}

    12.

    一看这个格式应该是十六进制,直接转成字符:

    cjV5RyBscDlJIEJqTSB0RmhCVDZ1aCB5N2lKIFFzWiBiaE0g

    试试base64:

    r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM 

    低头看键盘:

    t o n g y u a n

    这个提交的时候 直接提交 TONGYUAN就好

    13.

    不是MD5就是十六进制,。。没想到直接转换就搞出来了:

    flag{ae73587ba56baef5}

    14.

    base家族 16 32 64 都试过了。。。没想到还有什么 92 91.。。

    结果是base91 真的牛批。

    网址:

    ctf.ssleye.com/base91.html

    flag{554a5058c9021c76}
    15.
    社会主义核心价值观编码。。。。
    还是那个网站:
    http://ctf.ssleye.com/cvencode.html

    flag{90025f7fb1959936}

    16.

    有十进制(d开头的) 二进制(b开头) 八进制(o开头)  十六进制(x开头)

    直接写脚本:
    a = "d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e"
    b = a.split(" ")
    print b
    answer = ""
    for i in b:
        print i
        if i[0] == 'b':
            answer += chr(int(i[1:], 2))
        if i[0] == 'o':
            answer += chr(int(i[1:], 8))
        if i[0] == 'd':
            answer += chr(int(i[1:]))
        if i[0] == 'x':
            answer += chr(int(i[1:], 16))
    print(answer)
    

      

    flag{1e4bf81a6394de5abc005ac6e39a387b}

    17.

    函数就是仿射密码了,直接脚本就行:

    data = 'szzyfimhyzd'
    res = ''
    for x in data:
    	x = ord(x)
    	for i in range(0,26):
    		if x == (17*i-8)%26+97:
    			res += chr(i+97)
    
    print res
    

      

    flag{affineshift}

    18.

    这个参考了别人的,这是linuxshadow文件。直接用john工具就好(linux才有)

    flag{hellokitty}

     19.

    图片:

    这个是什么。。标准银河字母:

    flag{nopqrst}

    这就把密码学的都写完了。。。今天再更别的。。这个写到这。

  • 相关阅读:
    vs2008及以上的ActiveX测试容器在哪儿
    关于databinding的细节
    C#使用StackTrace获取方法被谁调用
    你是怎么走神的?
    怎样让SoapHttpClientProtocol不使用系统默认代理
    List的FindIndex和ForEach
    List的Capacity
    装箱和拆箱
    FileSystem.DeleteDirectory遇到"无法删除 文件:无法读取源文件或磁盘"
    一段关于测试和自定义Attribute的代码
  • 原文地址:https://www.cnblogs.com/lixiaoyao123/p/10350336.html
Copyright © 2020-2023  润新知