zoukankan      html  css  js  c++  java
  • 记2017问鼎杯预赛的wp---来自一个小菜鸡的感想

    这次准备写一下几个misc和密码题目。。很坑。

    打了一整天的比赛,越来越觉得自己很菜了。

    有一道题目叫做“真真假假”,这道题目只有一个提示——Xor。第一眼知道是异或,也就知道这一个信息。打开这个文件发现一堆16进制的有对称美的代码。

    1307 0a44 2305 0605 3d01 3e4f 192e 010a
    4423 1343 1f3c 0a79 011a 310a 0344 2a14
    0e04 211c 3516 5526 0101 0b39 1b00 0e27
    5579 4d3c 334f 0617 6c14 431f 261a 2d07
    5532 0106 1229 0710 0a38 0320 4f14 2404
    010b 3b19 060f 330a 3d43 5533 070e 106c
    1443 183d 013e 0310 6702 0e0a 6c1c 0d4b
    2400 2a1c 1034 1c06 0b22 550c 0d74 0e79
    081a 280b 4f02 2307 171e 3a0a 7902 0034
    1b4f 0629 550a 0574 1838 0101 6700 0944
    2d55 1402 320a 774d 5513 0706 176c 0606
    1f27 4f34 0e07 3506 0e03 2955 0218 740e
    790c 1029 1b1d 0520 5510 1e36 053c 0c01
    a5ef fb05 2211 4319 310e 3503 0c6b 4f0e
    442f 100d 1f26 0e35 4f05 3500 0d08 2918
    81eb c009 361d 5533 070a 4422 1a15 0e38
    4f3e 0a1b 221d 0e08 200c 4d4b 060a 380b
    1035 1c4f 053e 1043 1b3b 062a 0a11 671b
    0044 3d00 0618 2006 3601 5530 070a 1024
    1011 4b3b 1d79 011a 334f 1b0c 2906 064b
    2706 3708 1922 4f02 0122 5502 1931 4379
    061b 6709 0e07 3859 4302 3a4f 2e0e 1b33
    4f00 026c 1443 1c3d 093c 4355 281d 4f0d
    2a55 101e 3707 790b 1034 061d 013f 5502
    1931 4f3d 0616 330e 1b01 2855 0112 741b
    310a 5565 010a 0d2b 1d01 0421 1d31 001a
    234d 4f02 2d18 0a07 3d0a 2a4f 1429 0b4f
    1024 100a 1974 0b38 1a12 2f1b 0a16 3f55
    1403 3b4f 2b0a 0432 061d 016c 1443 4933
    0036 0b55 2100 1d10 391b 0649 7a4f 140e
    0735 060e 0329 550a 1874 0e79 0c1a 2a1f
    0301 3455 1004 3706 3803 5526 0c1b 0d3a
    1c17 1274 1b31 0e01 671b 0e0f 2906 431b
    3b03 301b 1c24 0e03 4429 160c 053b 0220
    4355 2601 0b44 2916 0c05 3b02 204f 1828
    1d0a 442b 100d 0e26 0e35 030c 6b4f 060a
    381a 430a 370c 361a 1b33 414f 2d22 5517
    0331 4f3a 0e06 224f 0002 6c36 0b0a 2603
    361b 0122 4f23 112f 1410 4774 0936 1d55
    2217 0e09 3c19 0647 741b 310a 5534 0a0a
    0925 1b04 4b27 1a3a 0c10 341c 4f0b 2a55
    0b0e 264f 340e 0735 060e 0329 550f 0231
    1c79 061b 671b 0701 6c16 0c06 3200 2b1b
    1425 030a 4429 160c 053b 0220 4f1a 214f
    1b0c 291c 114b 3c00 2c1c 102f 0003 0060
    5514 033d 033c 4f01 2f0a 4f16 2919 021f
    3d00 371c 1d2e 1f4f 0629 0114 0e31 0179
    2207 670e 0100 6c38 1118 742d 3c01 1b22
    1b4f 1729 0715 0e27 4f2d 0055 2e03 0311
    3f01 110a 200a 790d 1423 4f02 053e 070a
    0a33 0a2a 4f17 261c 0a00 6c1a 0d4b 3501
    7906 1b2e 1b06 0520 5502 1f20 1d38 0c01
    2e00 0144 2d1b 074b 271a 2b09 1424 0a4f
    0b3a 1011 4b27 1a3b 1c01 2601 0c01 6c5d
    0608 3b01 3602 1c24 4f0e 0a28 5513 182d
    0c31 0019 2808 0607 2d19 4a45 743b 310a
    5505 0a01 0a29 0110 4c74 0238 1d07 2e0e
    0801 6c1c 104b 3b01 3c4f 0632 0c07 4429
    0d02 0624 033c 4f01 2f0e 1b44 381d 064b
    2d00 2c01 1222 1c1b 440e 100d 0531 1b75
    4f39 3e0b 0605 6055 1402 3803 790c 1a2a
    0a4f 1023 5511 0e79 0a37 0e16 334f 180d
    381d 433c 3d0c 3207 142a 434f 0522 1143
    1f3c 0a79 1d10 341a 0310 3f55 0219 314f
    3f0e 0767 091d 0b21 5505 0e38 063a 0601
    281a 1c4a 6c02 070d 380e 3e14 2c28 1a4f
    253e 1043 3d31 1d20 4f26 2a0e 1d10 3121
    0b04 2108 314f 012f 0a4f 0729 1b17 1935
    0379 0c1d 261d 0e07 3810 1118 784f 1c03
    1c3d 0e0d 0138 1d43 0a3a 0b79 2b14 350c
    1648 6c17 060c 3d01 791b 1d22 4f01 0b3a
    100f 4b35 1c79 071a 341b 0608 2955 0208
    251a 3806 1b33 0e01 0729 0643 0a3a 0b79
    1a1b 2b06 0401 200c 430d 2606 3c01 1134
    434f 1024 101a 4b31 193c 0101 320e 0308
    3555 1404 2604 791b 1a67 1a01 0029 0710
    1f35 013d 4f10 260c 0744 2301 0b0e 264f
    3801 1167 1b07 0121 0606 0722 0a2a 4f06
    284f 1b0c 2d01 431f 3c0a 204f 1626 014f
    092d 0711 1274 0a38 0c1d 6700 1b0c 2907
    4304 3a4f 3a00 1837 0e1b 0d2e 1906 4b20
    0a2b 0206 671f 0a16 3f1a 0d0a 3803 2043
    5522 190a 0a6c 1c05 4b20 073c 0607 674d
    0a15 3914 0f49 741c 360c 1c26 034f 1738
    1417 1e27 4f2b 0a18 2606 0117 6c13 110a
    2108 311b 5b67 3807 0122 5526 073d 1538
    0d10 3307 4f16 291f 0608 201c 792b 1435
    0c16 433f 5505 0226 1c2d 4f05 3500 1f0b
    3f14 0f47 741b 310a 5526 1d08 1121 100d
    1f74 003f 4f1a 2903 1644 2114 1119 2d06
    3708 5530 070a 0a6c 1a0d 0e74 062a 4f1c
    294f 030b 3a10 4302 274f 3001 0135 000b
    112f 1007 4574 2a35 060f 260d 0a10 2455
    0c05 3816 790e 1624 0a1f 103f 5527 0a26
    0c20 4806 671f 1d0b 3c1a 100a 384f 2e07
    1029 4f1c 0c29 550a 1874 0c3c 1d01 2606
    0144 3f1d 064b 3800 2f0a 0667 0706 096c
    140d 0f74 073c 1d55 210a 0a08 251b 0418
    740e 2b0a 5535 0a0c 0d3c 070c 0835 1b3c
    0b5b 672e 1a17 3810 0d4c 274f 3a00 1837
    030a 1c6c 0608 0e20 0c31 061b 204f 0002
    6c11 0a0d 320a 2b0a 1b33 4f02 053e 070a
    0a33 0a2a 4f00 2b1b 0609 2d01 0607 2d4f
    3803 1928 181c 443e 1002 0f31 1d2a 4f01
    284f 1e11 2906 1702 3b01 7918 1d26 1b4f
    0223 070e 1874 003f 4f14 2b03 0605 2216
    064b 351d 3c4f 1122 1c06 162d 170f 0e78
    4f3c 1c05 220c 0605 2019 1a4b 2307 3c01
    552e 1b4f 0723 1806 1874 1b36 4f05 3506
    190d 2010 0402 3a08 790a 1628 0100 0925
    164f 4b27 0a21 1a14 2b43 4f07 2318 130a
    3a06 3601 1433 0a4f 0538 0111 0a37 1b30
    001b 69

    第一次做这种类型的题目,并不知道这个题目的套路。之后查了很多资料,我在这里分享一个简单的方法。

    https://github.com/hellman/xortool 

    这里要用到python 的  xortool的方法,在python的Script目录下运行xortool,然后放进去下载出来的文件,分析得到


    C:Python27Scripts>python xortool E:cipher
    The most probable key lengths:
    2: 12.2%
    5: 11.9%
    9: 9.8%
    13: 22.2%
    20: 6.8%
    22: 6.2%
    26: 12.8%
    30: 4.6%
    39: 7.8%
    52: 5.7%
    Key-length can be 3*n
    Most possible char is needed to guess the key!

    C:Python27Scripts>

    然后使用-c 20命令得到

    C:Python27Scripts>python xortool E:cipher -c 20
    The most probable key lengths:
    2: 12.2%
    5: 11.9%
    9: 9.8%
    13: 22.2%
    20: 6.8%
    22: 6.2%
    26: 12.8%
    30: 4.6%
    39: 7.8%
    52: 5.7%
    Key-length can be 3*n
    1 possible key(s) of length 13:
    Good uckToYou
    Found 1 plaintexts with 95.0%+ printable characters
    See files filename-key.csv, filename-char_used-perc_printable.csv

    ok得到了相似的KEY,之后我们猜测是 GoodLuckToYou

    转换为16进制后调用脚本

    # -*- coding: utf-8 -*-
    import requests
    import base64
    import re
    import string
    import time
    import sys
    import base64

    #!/usr/bin/env python2

    txt = open("E:\cipher", "rb").read()
    key = "47 6F 6F 64 4C 75 63 6B 54 6F 59 6F 75".replace(" ", "").decode("hex")

    def my_xor(cipher, key):
    keylen = len(key)
    res = ""

    for pos, c in enumerate(cipher):
    res += chr(ord(c) ^ ord(key[pos % keylen]))

    return res

    print my_xor(txt, key)

    得到了文本,得到flag

    因为菜,所以仍在努力。
  • 相关阅读:
    hdu 2842 Chinese Rings
    Codeforces Round #118 (Div. 1) A 矩阵快速幂
    hdu2604 Queuing
    支付宝 生活号 获取 userId 和 生活号支付
    maven 项目使用本地jar
    nexus 私有 maven 仓库的搭建
    linux jdk 安装
    gitlab 可以上传代码,但是 不能 上传 tag 问题
    maven 内置变量
    mysql 不允许分组的问题 this is incompatible with sql_mode=only_full_group_by
  • 原文地址:https://www.cnblogs.com/Pinging/p/7538493.html
Copyright © 2011-2022 走看看