2021 第四届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题

Posted 小哈里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021 第四届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题相关的知识,希望对你有一定的参考价值。

文章目录

1、Misc:asoul_lover

题目表述:

  • 最近我旁边的灏妹天天上班第一句就是“Avaava”,还说要当安恒第一顶碗人。在他桌面上似乎发现了一个好康的压缩文件,想想他之前用过自己的名字+生日来做压缩密码,这把应该也能破解出来咯?对咯,他的压缩软件支持中文密码。flag的格式为 DASCTFxxxxxx,提交时只需要提交括号内的字符串。

做法:

  • 结合描述,萌娘百科一下
  • 得到压缩包密码为 向晚0612
    解压即可获得flag。
  • PS:如果一种解压软件挂了可以换另一种试试(

2、Misc:site_log

题目描述:

  • 给了一个压缩包,有一个.log和flag.zip。
  • 从log入手,打开后发现有很多的chr字符,将之转换后得到一堆shell命令。
    ls
    cd /
    ls
    cat flag
    zip
    zip -rP hehehe233_Igotroot! flag.zip
    rm flag
    echo “I AM ROOT”.
  • 不难发现压缩包密码为hehehe233_Igotroot!,解压即可获得flag。

3、RE:最简单的逆向

题目描述:

  • 给了个文件,丢到IDA打开后F5。
    发现了一个for循环,0-39,给str[i]都加上50去判断, 如果都等于enc就成立。
  • 找一下enc数组中的值。
    0x76, 0x73, 0x85, 0x75, 0x86, 0x78, 0xAD, 0x6B, 0x97, 0x68, 0x98,0x67, 0x64, 0x64,0x62, 0x97, 0x68, 0x98, 0x6B,0x6B, 0x96,0x67, 0x62, 0x69, 0x95, 0x96, 0x65, 0x96, 0x6A, 0x69,0x69,0x65, 0x66, 0x97, 0x68, 0x98, 0x6A, 0x95, 0x68, 0xAF, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  • 写个代码每个字符减50合成一下,即可获得flag
    #include<bits/stdc++.h>
    using namespace std;
    unsigned char enc[] = 
      0x76, 0x73, 0x85, 0x75, 0x86, 0x78, 0xAD, 0x6B, 0x97, 0x68, 
      0x98, 0x67, 0x64, 0x64, 0x62, 0x97, 0x68, 0x98, 0x6B, 0x6B, 
      0x96, 0x67, 0x62, 0x69, 0x95, 0x96, 0x65, 0x96, 0x6A, 0x69, 
      0x69, 0x65, 0x66, 0x97, 0x68, 0x98, 0x6A, 0x95, 0x68, 0xAF, 
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
      0x00, 0x00, 0x00, 0x00
    ;
    int main()
        for (int i = 0; i <= 39; i++)
            enc[i]-=50;
        
        printf("%s",enc);
        
    
    
    // Py : for i in enc: print(chr(int(i)-50),end='')
    

4、Web:远古特性

题目描述:

  • 网站上有一个php文件。
    <?php
    // Present from glzjin :)
    highlight_file(__FILE__);
    $file = $_GET['file'];
    if(preg_match('/^hint\\/hint.txt$/m', $file)) 
        echo file_get_contents($file);
     else 
        echo "Try again!";
     Try again!
    

做法:

  • php代码审计,可以发现传入的payload中 ?file=xxxxx中,xxxx根据正则表达式匹配必须包含hint/hint.txt才能进入file_get_contents这行。
  • 再注意到正则表达式中有/m,可以进行多行匹配。我们用换行符%0A绕过正则行首行尾字符匹配, 然后加上目录穿越读取文件。
  • 按照如下格式,不断添加…/寻找读取flag文件即可
    ?file=hint/hint.txt%0a../../../../../../flag
    

5、Crypto:decode_and_decode

题目描述

  • 下载decode_and_decode的附件22.txt得到一堆base密文。

做法:

  • 用工具尝试进行base循环解密即可。

    import base64
    with open(r'decode_and_decode的附件22.txt', 'r', encoding='utf-8') as f:
        for a in f:
            while 1:
                try:
                    a = base64.b64decode(a).decode("utf-8")
                except:
                    pass
                try:
                    a = base64.b32decode(a).decode("utf-8")
                except:
                    pass
                try:
                    a = base64.b16decode(a).decode('utf-8')
                except:
                    pass
    
                if "" in a:
                    print(a)
    
                    break
    
    
  • 得到flag

其他可做题:
web:just login,safepop
re:RE人三项,preprocess
pwn:pwn1

以上是关于2021 第四届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题的主要内容,如果未能解决你的问题,请参考以下文章

2021 第四届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题

2021 第四届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题

2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题

2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题

2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题

2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题