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题