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


    1、Misc:asoul_lover

    题目表述:

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

    做法:

    • 结合描述,萌娘百科一下
      在这里插入图片描述
    • 得到压缩包密码为 向晚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
      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='')
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20

    4、Web:远古特性

    题目描述:

    • 网站上有一个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!
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9

    做法:

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

    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
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
    • 得到flag
      在这里插入图片描述

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

  • 相关阅读:
    Compose中的RefreshLayout
    机器视觉工程师能不能去海康做机器视觉?
    前端--性能优化【中篇】--html+css优化与图片优化
    线程安全(六)AQS 的工作原理
    Java InputStream.mark()方法具有什么功能呢?
    JS标准库
    记 IDEA 启动 Command line is too long 解决
    环形链表 II
    HBuilder创建vue-cli项目并安装element-plus
    【Python 实战基础】如何修改表格数据类型DataFrame列的顺序
  • 原文地址:https://blog.csdn.net/qq_33957603/article/details/126757799