zoukankan      html  css  js  c++  java
  • hgame 2021部分wp

    Re

    pypy

    1. 题目所给的时Python字节码,如下
      4           0 LOAD_GLOBAL              0 (input)
                  2 LOAD_CONST               1 ('give me your flag:
    ')
                  4 CALL_FUNCTION            1
                  6 STORE_FAST               0 (raw_flag)
    
      5           8 LOAD_GLOBAL              1 (list)
                 10 LOAD_FAST                0 (raw_flag)
                 12 LOAD_CONST               2 (6)
                 14 LOAD_CONST               3 (-1)
                 16 BUILD_SLICE              2
                 18 BINARY_SUBSCR
                 20 CALL_FUNCTION            1
                 22 STORE_FAST               1 (cipher)
    
      6          24 LOAD_GLOBAL              2 (len)
                 26 LOAD_FAST                1 (cipher)
                 28 CALL_FUNCTION            1
                 30 STORE_FAST               2 (length)
    
      8          32 LOAD_GLOBAL              3 (range)
                 34 LOAD_FAST                2 (length)
                 36 LOAD_CONST               4 (2)
                 38 BINARY_FLOOR_DIVIDE
                 40 CALL_FUNCTION            1
                 42 GET_ITER
            >>   44 FOR_ITER                54 (to 100)
                 46 STORE_FAST               3 (i)
    
      9          48 LOAD_FAST                1 (cipher)
                 50 LOAD_CONST               4 (2)
                 52 LOAD_FAST                3 (i)
                 54 BINARY_MULTIPLY
                 56 LOAD_CONST               5 (1)
                 58 BINARY_ADD
                 60 BINARY_SUBSCR
                 62 LOAD_FAST                1 (cipher)
                 64 LOAD_CONST               4 (2)
                 66 LOAD_FAST                3 (i)
                 68 BINARY_MULTIPLY
                 70 BINARY_SUBSCR
                 72 ROT_TWO
                 74 LOAD_FAST                1 (cipher)
                 76 LOAD_CONST               4 (2)
                 78 LOAD_FAST                3 (i)
                 80 BINARY_MULTIPLY
                 82 STORE_SUBSCR
                 84 LOAD_FAST                1 (cipher)
                 86 LOAD_CONST               4 (2)
                 88 LOAD_FAST                3 (i)
                 90 BINARY_MULTIPLY
                 92 LOAD_CONST               5 (1)
                 94 BINARY_ADD
                 96 STORE_SUBSCR
                 98 JUMP_ABSOLUTE           44
    
     12     >>  100 BUILD_LIST               0
                102 STORE_FAST               4 (res)
    
     13         104 LOAD_GLOBAL              3 (range)
                106 LOAD_FAST                2 (length)
                108 CALL_FUNCTION            1
                110 GET_ITER
            >>  112 FOR_ITER                26 (to 140)
                114 STORE_FAST               3 (i)
    
     14         116 LOAD_FAST                4 (res)
                118 LOAD_METHOD              4 (append)
                120 LOAD_GLOBAL              5 (ord)
                122 LOAD_FAST                1 (cipher)
                124 LOAD_FAST                3 (i)
                126 BINARY_SUBSCR
                128 CALL_FUNCTION            1
                130 LOAD_FAST                3 (i)
                132 BINARY_XOR
                134 CALL_METHOD              1
                136 POP_TOP
                138 JUMP_ABSOLUTE          112
    
     15     >>  140 LOAD_GLOBAL              6 (bytes)
                142 LOAD_FAST                4 (res)
                144 CALL_FUNCTION            1
                146 LOAD_METHOD              7 (hex)
                148 CALL_METHOD              0
                150 STORE_FAST               4 (res)
    
     16         152 LOAD_GLOBAL              8 (print)
                154 LOAD_CONST               6 ('your flag: ')
                156 LOAD_FAST                4 (res)
                158 BINARY_ADD
                160 CALL_FUNCTION            1
                162 POP_TOP
                164 LOAD_CONST               0 (None)
                166 RETURN_VALUE
    
    # your flag: 30466633346f59213b4139794520572b45514d61583151576638643a
    
    1. 将字节码翻译为Python代码,参考
    raw_flag = input('give me your flag:
    ')
    
    cipher = list(raw_flag[6:-1])
    
    length = len(cipher)
    
    for i in range(length // 2):
        cipher[2*i], cipher[2*i + 1] = cipher[2*i + 1], cipher[2*i]
    
    rse = []
    for i in range(length):
        res.append(ord(cipher[i]) ^ i)
    
    res = bytes(res).hex()
    print('your flag: ', res)
    
    # your flag: 30466633346f59213b4139794520572b45514d61583151576638643a
    
    1. 解密代码为
    res = '30466633346f59213b4139794520572b45514d61583151576638643a'
    res_b = bytes.fromhex(res)
    print(res_b)
    
    cipher = []
    for i in range(len(res_b)):
        cipher.append(chr(res_b[i] ^ i))
    print(cipher)
    
    for i in range(len(cipher) // 2):
        cipher[2*i], cipher[2*i + 1] = cipher[2*i + 1], cipher[2*i]
    
    print(cipher)
    flag = ""
    for i in cipher:
        flag += i
    print(flag)
    
    1. 结果为G00dj0&_H3r3-I$Y@Ur_$L@G!~!~

    Crypto

    まひと

    1. 下载文件并打开,时morse电码,解码得到
    86/109/108/110/90/87/53/108/99/109/85/116/84/71/108/114/97/84/112/57/86/109/116/116/100/107/112/105/73/84/70/89/100/69/70/52/90/83/70/111/99/69/48/120/101/48/48/114/79/88/104/120/101/110/74/85/84/86/57/79/97/110/53/106/85/109/99/48/101/65/61/61
    
    1. 十进制转ASCII
    VmlnZW5lcmUtTGlraTp9VmttdkpiITFYdEF4ZSFocE0xe00rOXhxenJUTV9Oan5jUmc0eA==
    
    1. base64解码
    Vigenere-Liki:}VkmvJb!1XtAxe!hpM1{M+9xqzrTM_Nj~cRg4x
    
    1. 维吉尼亚加密,且密钥为Liki,解密
    }KccnYt!1NlPpu!zeE1{C+9pfrhLB_Fz~uGy4n
    
    1. 因为明文中是包含hgame的,因此必有移位,遍历以下移位后结果中包含hgame的
    def caesar(c, n):
        tmp = ""
        for i in c:
            if 'a' <= i <= 'z':
                if ord(i) + n > ord('z'):
                    tmp += chr((ord(i) - ord('a') + n) % 26 + ord('a'))
                else:
                    tmp += chr(ord(i) + n)
            elif 'A' <= i <= 'Z':
                if ord(i) + n > ord('Z'):
                    tmp += chr((ord(i) - ord('A') + n) % 26 + ord('A'))
                else:
                    tmp += chr(ord(i) + n)
            else:
                tmp += i
        return tmp
    
    
    c = "}KccnYt!1NlPpu!zeE1{C+9pfrhLB_Fz~uGy4n"
    
    for i in range(2, 26):
        res = caesar(c, i)
        if 'h' in res and 'g' in res and 'a' in res and 'm' in res and 'e' in res:
            print(i, res)
    

    结果为移位13时包含,字符串为}XppaLg!1AyCch!mrR1{P+9cseuYO_Sm~hTl4a
    6. 根据括号的位置可以判断还有一层栅栏密码,尝试发现每组字数6,得到}!!Pu~X1m+YhpAr9OTpyRc_laC1sS4Lc{emagh字符串反转一下得到flag
    hgame{cL4Ss1Cal_cRypTO9rAphY+m1X~uP!!}

    WhitegiveRSA

    确实白给

    1. 先大数分解得到p和q分别为857504083339712752489993810777和1029224947942998075080348647219
    2. python代码如下
    import gmpy2
    from Crypto.Util.number import long_to_bytes
    
    e = 65537
    c = 747831491353896780365654517748216624798517769637260742155527
    n = 882564595536224140639625987659416029426239230804614613279163
    p = 857504083339712752489993810777
    q = 1029224947942998075080348647219
    
    phn = (p-1) * (q-1)
    d = gmpy2.invert(e, phn)
    print(d)
    
    m = pow(c, d, n)
    print(long_to_bytes(m)
    

    hgame{w0w~yOU_kNoW+R5@!}

    MISC

    Week-1

    不起眼压缩包的养成的方法

    1. 下载得到一个jpg文件,用010Editor打开,发现末尾有
    2. 因此推测jpg中包含zip文件,且口令为8位数字
    3. foremost分离出zip文件,并使用Advanced Archive Password Recovery暴力破解,得到口令为70415155
    4. 成功解压缩,得到两个文件
    5. 发现plain.zip中还有个NO PASSWORD.txt且没有更多的提示,因此应该是利用这个文本文件进行已知明文攻击,参考
    6. 在ARCHPR中添加待解密的文件和我们自己压缩的文件,最初在此遇到了报错
    7. 因此换成winRAR进行压缩,在压缩前查看了已有的待破解压缩包的属性有
    8. 因此将NO PASSWORD.txt以同样的方式进行压缩
    9. 现在可以成功开始
    10. 最终得到口令为C8uvP$DP
    11. 解压plain.zip得到其中的flag.zip,由于没有更多的提示,所以用010Editor查看以下,得到以下信息
    12. 将这段值复制出来转成ASCII即可得到flag为hgame{2IP_is_Usefu1_and_Me9umi_i5_W0r1d}

    Galaxy

    1. 下载pcapng文件,拖到wireshark看下,根据提示有一张星空壁纸,所以先搜索有无png
    2. 双击这条,然后找到PNG文件流所在位置,复制hex流
    3. 用Python将其转为文件
    import binascii
    
    m= '将复制好的hex流粘贴至此'
    f=open('flag.png', 'wb')
    f.write(binascii.a2b_hex(m))
    
    1. 打开得到的png文件却提示
    2. 用010Editor打开提示CRC校验错误,看一下图片宽高,因此可能是高度有错,通过CRC爆破即可,这里参考以前的一篇博客,只需改下图片名即可
    import struct
    import binascii
    from Crypto.Util.number import bytes_to_long
    
    img = open("flag.png", "rb").read()
    
    for i in range(0xFFFF):
        stream = img[12:20] + struct.pack('>i', i) + img[24:29]
        crc = binascii.crc32(stream)
        if crc == bytes_to_long(img[29:33]):
             print(hex(i))
    
    1. 输出结果1000,因此将高度改为1000即可看到flag

    hgame{Wh4t_A_W0nderfu1_Wa11paper}

    Word RE:MASTER

    1. 解压缩发现两个文件,maimai.docx需要口令,因此推测first中有关键信息

      查看文件属性也可以发现提示
    2. binwalk查看
    3. binwalk -e first.docx分离文件,发现有个password.xml
    4. 打开后得到
    +++++ +++[- >++++ ++++< ]>+++ +.<++ +[->+ ++<]> ++.<+ ++[-> +++<] >+.<+ ++[-> ---<] >-.++ ++++. <+++[ ->--- <]>-. +++.+ .++++ ++++. <+++[ ->--- <]>-- ----. +.--- --..+ .++++ +++++ .<+++ [->-- -<]>- ----- .<
    
    1. Brainfuck解密,得到DOYOUKNOWHIDDEN?
    2. 用其成功打开maimai.docx
    3. 请教大佬,发现是snow隐写参考
    4. 将docx导出txt文件
    5. SNOW.EXE -C maimai.txt

    hgame{Cha11en9e_Whit3_P4ND0R4_P4R4D0XXX}

    Week-2

    Hallucigenia

    1. 用Stegsolve打开,发现了一个被反色的QR二维码
    2. 保存这个二维码并反色,得到
    3. 扫描得到
    gmBCrkRORUkAAAAA+jrgsWajaq0BeC3IQhCEIQhCKZw1MxTzSlNKnmJpivW9IHVPrTjvkkuI3sP7bWAEdIHWCbDsGsRkZ9IUJC9AhfZFbpqrmZBtI+ZvptWC/KCPrL0gFeRPOcI2WyqjndfUWlNj+dgWpe1qSTEcdurXzMRAc5EihsEflmIN8RzuguWq61JWRQpSI51/KHHT/6/ztPZJ33SSKbieTa1C5koONbLcf9aYmsVh7RW6p3SpASnUSb3JuSvpUBKxscbyBjiOpOTq8jcdRsx5/IndXw3VgJV6iO1+6jl4gjVpWouViO6ih9ZmybSPkhaqyNUxVXpV5cYU+Xx5sQTfKystDLipmqaMhxIcgvplLqF/LWZzIS5PvwbqOvrSlNHVEYchCEIQISICSZJijwu50rRQHDyUpaF0y///p6FEDCCDFsuW7YFoVEFEST0BAACLgLOrAAAAAggUAAAAtAAAAFJESEkNAAAAChoKDUdOUIk=
    
  • 相关阅读:
    HDU 2563 统计问题 (DFS + 打表)
    KendoUi中KendoDropDownList控件的使用——三级级联模块的实现
    POJ 1325 &amp;&amp; ZOJ 1364--Machine Schedule【二分图 &amp;&amp; 最小点覆盖数】
    crontab FAQ
    思科2960trunk vlan配置及路由IP配置
    hdoj-1593-find a way to escape【数学题】
    Java编程思想(四) —— 复用类
    在 Android 应用程序中使用 SQLite 数据库以及怎么用
    Swift Standard Library Reference.pdf
    VC、IE、ASP环境下打印、预备的完美解决方式
  • 原文地址:https://www.cnblogs.com/vict0r/p/14366289.html
Copyright © 2011-2022 走看看