此题解仅为部分题解,包括:
【RE】:①Reverse_Checkin ②SimplePE ③EzGame
【Web】①f12 ②ezrunner
【Crypto】①MD5 ②password ③看我回旋踢 ④摩丝
【Misc】①爆爆爆爆 ②凯撒大帝的三个秘密 ③你才是职业选手
双击文件看到如上提示:“也许你能从字符串里找到什么”。
将文件拖入IDA得到:
在“view”菜单栏找到“opensubviews”下面的“strings”,点开。
东西太多实在是不好找,妙用搜索技能。
Ctrl+F 搜索“flag”得到如上图所示信息
即得到: flag{this_is_a_re_flag}
双击点开exe文件,尝试直接输入flag,提示错误。
我们将exe文件拖入IDA。
在旁边窗口ctrl+F寻找main函数
双击其中的“_main_0”进入到以下界面
根据平常的阅读习惯,我们可以rename一下更直观地去了解程序。
将“sub_459BDB”改为“printf”
“sub_45CCCD”改为“system”
“sub_4591AE”改为“scanf”
得到
程序看起来更好辨识了。
观察发现我们可以自行制作一个C/C++程序:制作按照这个索引表,将字符数组赋值进去然后再进行遍历数组,操作完成后便是解密后的答案。它解密的过程是利用索引表进行异或操作,遍历整个str1后得到最终的str1便是答案。
写出如下代码:
运行程序得到:
即flag{d0_y0u_kn0w_wh4t_1s_r3v3r53}
按照往常的习惯,将exe双击打开,发现什么也不显示
那么我们再将exe拖入ida中:
发现它呈现一个这样的状态,说明IDA识别不出来它,说明这个程序是被做过处理的。
于是我们用到“exeinfope”这个脱壳工具,这个工具是用来查程序是否被加密或者压缩的。
我们直接将“EZGame.exe”拖进这个工具中,得到:
观察发现,我们的程序被UPX给压缩了。
而UPX它的特点就是,如果我们用它对程序进行了压缩,那么我们也可以用它进行解压缩操作。于是我们找到UPX工具进行解压缩操作。
Win+R 打开cmd
之后将“upx.exe”拖入cmd窗口中
加入指令**-d** 再将EZGame拖入cmd中
成功解压缩此程序。
于是我们将这个已经解压缩的程序再次拖入IDA
这一次就可以正常显示它的内容了。
还是通过侧边栏找到主函数。
进入主函数,为以下界面
按F5查看C语言程序
按照阅读习惯改掉名字(“scanf/system”)后,来看程序的逻辑。
数字要在-1到8之间且不为0的情况下,才会继续往下走。
在等于7的时候会如何?
双击“byte_548108”这个数组进入后得到以下界面
108是这个数组的首地址。
从byte108的小标“0”开始往下数,在出现下面的字符之前能数到7。(已注释)
观察程序代码,发现赋值效果是“原来是0则变为1,原来是1就变为0”给0和1作变化进行循环输入
程序如何跳出,双击查看得到
我们需要让它返回“1”,如果要让他返回“1”,就要让108这个数组的全部成员都不为0,即全为1。
要实现这一功能,就要让成员中的最后两个1和0颠倒,或前两个1和0颠倒,要么任选三个1和0颠倒,直到他们全部都为1。
按照这一逻辑写出程序:
运行得到结果:
算出来好多组答案,不对就可以一个一个试。
1 11110010
5 11111100
7 11111111
现在打开最开始的“EZGame.exe”文件
依次输入“1,5,7”
发现157是正确答案
且需要将157进行md5加密才能得到答案。
(根据提示为32位小写加密)
得到:
得到了flag{6c4b761a28b734fe93831e3fb400ce87}
打开网页看见如图所示字样,敲击键盘f12打开开发人员工具,打开源代码,查看索引
得到flag{have_fun_hahaha}
打开网址出现如下:
这道题其实就是一个命令执行的问题,这个服务器使用的linux命令。先输入whoami看看它是谁。
显示root字样:
之后我们用命令符的命令操作去查看它的目录。
比如“ls”查看当前目录下有哪些文件,“%20”是空格,再加上一个‘/’也就是“ls%20/”回车后可以看到如下:
由上图可以看到目录下存在哪些文件。我们注意到了“flag”。
我们再加上“flag%20-l”查看它的详细信息:
上图可知文件可读,那么我们就用cat命令去进行读取操作:
得到flag{6bb08da7-8be9-403a-bcdd-0c21cea54986}
下载附件“md5.txt”,打开如图所示:
使用md5解码器,将上述密文解码得到admin1
即:flag{admin1}
打开txt附件得到如下
分析,{}中的x有10位,上述的生日“19900315”共有8位,而剩下的两位也许对应姓名“张三”的缩写“zs”。
尝试将**flag{zs19900315}**提交,提示正确。
打开txt附件得到:
猜测前面的“synt”对应“flag”,并发现他们之间的偏移量为13。
于是将“synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}”使用凯撒密码解码器,设置偏移量为13。
得到了flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}
打开附件发现是一串摩斯密码。
直接使用摩斯密码解码器得到“iloveyou”
加上flag{iloveyou}提交发现不对,于是再尝试将所有字母大写,提交flag{ILOVEYOU},提示正确。
下载文件,发现是一个没有后缀的文件。
尝试将文件后缀加上“.rar”变为压缩文件。之后双击点开它发现其中的“flag.txt”。双击发现点开需要密码。
打开压缩文件密码破解软件“ARCHPR”:
在此软件内打开待破解的文件,勾选上所有暴力范围选项,进行暴力破解后得到结果:
文件口令为3465。
我们重新打开这个文件
点击确定
得到flag{ez_z1p_ARCHRP}
下载txt附件打开得到如下图
又是一个凯撒密码破解的题,观察iodj应该对应“flag”,他们之间的偏移量为3,将“iodj{H4VB_F4HV4U_F0GH}”使用凯撒解码破解,偏移量设置为3。
得到:flag{E4SY_C4ES4R_C0DE}
③ 你才是职业选手:下载得到“master.jpg”,习惯性地右键点击查看属性,再点击查看详细信息
发现备注一栏居然就是flag。
即flag{pr0feSs1ona1_Pl4yer}
长春理工大学第六届网络攻防大赛题目下载链接
Cust第六届网安竞赛题目附件