长春理工大学第六届CTF网络攻防大赛题解(文末有题目下载链接)

此题解仅为部分题解,包括:
【RE】:①Reverse_Checkin ②SimplePE ③EzGame
【Web】①f12 ②ezrunner
【Crypto】①MD5 ②password ③看我回旋踢 ④摩丝
【Misc】①爆爆爆爆 ②凯撒大帝的三个秘密 ③你才是职业选手

一、 Re

① Reverse Checkin:

image-20220330173842910
双击文件看到如上提示:“也许你能从字符串里找到什么”。
将文件拖入IDA得到:
image-20220330173915212
在“view”菜单栏找到“opensubviews”下面的“strings”,点开。
image-20220330173936641
东西太多实在是不好找,妙用搜索技能。

Ctrl+F 搜索“flag”得到如上图所示信息
即得到: flag{this_is_a_re_flag}

② SimplePE

双击点开exe文件,尝试直接输入flag,提示错误。
image-20220330174219344
我们将exe文件拖入IDA。
image-20220330174232022
image-20220330174253095
在旁边窗口ctrl+F寻找main函数
双击其中的“_main_0”进入到以下界面
image-20220330174325056

F5 此界面变为可读的C语言。
image-20220330174413315

根据平常的阅读习惯,我们可以rename一下更直观地去了解程序。

image-20220330174429574
将“V6”改为了“indexTable”,即“索引表”。

将“sub_459BDB”改为“printf”

“sub_45CCCD”改为“system”

“sub_4591AE”改为“scanf”

得到

image-20220330174532718

程序看起来更好辨识了。

观察发现我们可以自行制作一个C/C++程序:制作按照这个索引表,将字符数组赋值进去然后再进行遍历数组,操作完成后便是解密后的答案。它解密的过程是利用索引表进行异或操作,遍历整个str1后得到最终的str1便是答案。

写出如下代码:

image-20220330174606724
image-20220330174624208

运行程序得到:

image-20220330174730746

flag{d0_y0u_kn0w_wh4t_1s_r3v3r53}

EzGame

按照往常的习惯,将exe双击打开,发现什么也不显示

image-20220330174745628

那么我们再将exe拖入ida中:

image-20220330174801827

发现它呈现一个这样的状态,说明IDA识别不出来它,说明这个程序是被做过处理的。

于是我们用到“exeinfope”这个脱壳工具,这个工具是用来查程序是否被加密或者压缩的。

我们直接将“EZGame.exe”拖进这个工具中,得到:

image-20220330174817451

观察发现,我们的程序被UPX给压缩了。

image-20220330174839172

而UPX它的特点就是,如果我们用它对程序进行了压缩,那么我们也可以用它进行解压缩操作。于是我们找到UPX工具进行解压缩操作。

Win+R 打开cmd

之后将“upx.exe”拖入cmd窗口中

image-20220330174938210

加入指令**-d** 再将EZGame拖入cmd中

image-20220330174950078

成功解压缩此程序。

于是我们将这个已经解压缩的程序再次拖入IDA

这一次就可以正常显示它的内容了。

image-20220330175002123

image-20220330175044277

还是通过侧边栏找到主函数。

进入主函数,为以下界面

image-20220330175054385

F5查看C语言程序

image-20220330175107200

按照阅读习惯改掉名字(“scanf/system”)后,来看程序的逻辑。

image-20220330175128883

数字要在-1到8之间且不为0的情况下,才会继续往下走。

在等于7的时候会如何?

双击“byte_548108”这个数组进入后得到以下界面

108是这个数组的首地址。

image-20220330175154720

从byte108的小标“0”开始往下数,在出现下面的字符之前能数到7。(已注释)

image-20220330175304378

观察程序代码,发现赋值效果是“原来是0则变为1,原来是1就变为0”给0和1作变化进行循环输入

image-20220330175315545

程序如何跳出,双击查看得到

image-20220330175325299

我们需要让它返回“1”,如果要让他返回“1”,就要让108这个数组的全部成员都不为0,即全为1。

要实现这一功能,就要让成员中的最后两个1和0颠倒,或前两个1和0颠倒,要么任选三个1和0颠倒,直到他们全部都为1。

按照这一逻辑写出程序:

image-20220330175356575

image-20220330175411530

运行得到结果:

image-20220330175425325

算出来好多组答案,不对就可以一个一个试。

  • 1 11110010

  • 5 11111100

  • 7 11111111

现在打开最开始的“EZGame.exe”文件

依次输入“1,5,7”

image-20220330175445691

发现157是正确答案

且需要将157进行md5加密才能得到答案。

(根据提示为32位小写加密)

得到:

image-20220330175531589

得到了flag{6c4b761a28b734fe93831e3fb400ce87}

二、 Web

① f12:

image-20220330175654211

打开网页看见如图所示字样,敲击键盘f12打开开发人员工具,打开源代码,查看索引

image-20220330175749237

得到flag{have_fun_hahaha}

② ezrunner

打开网址出现如下:

image-20220330175810017

这道题其实就是一个命令执行的问题,这个服务器使用的linux命令。先输入whoami看看它是谁。

显示root字样:

image-20220330175853265

之后我们用命令符的命令操作去查看它的目录。

比如“ls”查看当前目录下有哪些文件,“%20”是空格,再加上一个‘/’也就是“ls%20/”回车后可以看到如下:

image-20220330175933213

由上图可以看到目录下存在哪些文件。我们注意到了“flag”。

我们再加上“flag%20-l”查看它的详细信息:

image-20220330180030806

上图可知文件可读,那么我们就用cat命令去进行读取操作:

image-20220330180049663

得到flag{6bb08da7-8be9-403a-bcdd-0c21cea54986}

三、 Crypto

MD5

下载附件“md5.txt”,打开如图所示:

image-20220330180148916

使用md5解码器,将上述密文解码得到admin1

即:flag{admin1}

② Password

打开txt附件得到如下

image-20220330180317258

分析,{}中的x有10位,上述的生日“19900315”共有8位,而剩下的两位也许对应姓名“张三”的缩写“zs”。

尝试将**flag{zs19900315}**提交,提示正确。

③ 看我回旋踢

打开txt附件得到:

image-20220330180247513

猜测前面的“synt”对应“flag”,并发现他们之间的偏移量为13。

于是将“synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}”使用凯撒密码解码器,设置偏移量为13。

得到了flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}

④ 摩丝

打开附件发现是一串摩斯密码。

image-20220330180359048

直接使用摩斯密码解码器得到“iloveyou”

加上flag{iloveyou}提交发现不对,于是再尝试将所有字母大写,提交flag{ILOVEYOU},提示正确。

四、 Misc

① 爆爆爆爆

下载文件,发现是一个没有后缀的文件。

image-20220330180443683

尝试将文件后缀加上“.rar”变为压缩文件。之后双击点开它发现其中的“flag.txt”。双击发现点开需要密码。

image-20220330180458804

打开压缩文件密码破解软件“ARCHPR”:

image-20220330180507954

在此软件内打开待破解的文件,勾选上所有暴力范围选项,进行暴力破解后得到结果:

image-20220330180517970

文件口令为3465。

我们重新打开这个文件

点击确定

image-20220330180534661

得到flag{ez_z1p_ARCHRP}

凯撒大帝的三个秘密

下载txt附件打开得到如下图

image-20220330180602538

又是一个凯撒密码破解的题,观察iodj应该对应“flag”,他们之间的偏移量为3,将“iodj{H4VB_F4HV4U_F0GH}”使用凯撒解码破解,偏移量设置为3。

得到:flag{E4SY_C4ES4R_C0DE}

③ 你才是职业选手:下载得到“master.jpg”,习惯性地右键点击查看属性,再点击查看详细信息

image-20220330180640210

发现备注一栏居然就是flag。

flag{pr0feSs1ona1_Pl4yer}


长春理工大学第六届网络攻防大赛题目下载链接
Cust第六届网安竞赛题目附件

  • 18
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AKA山风点火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值