CTF系列文章
第一篇 CTF之密码学题目-classical && coding
第二篇 CTF之MISC题目-西游记
第三篇 CTF之MISC题目-简单流量
文章目录
前言
CTF中关于MISC(杂项)的题目通常都比较有意思,很考察思维的发散性。下面的这道题就是需要灵活的思考,涉及暴力破解、编码、手动处理文本等多种手段。
一、题目是什么?
二、解题步骤
1.下载文件,解压
但是解压发现,文件是加密的,需要输入密码。这个时候,最简单的方式就是暴力破解,但是暴力破解需要有个大致的范围,我们简单猜测是8位的纯数字。
2.暴力破解
没有想到的是,这个密码居然真的这么简单,不愧为“简单题目”。密码顺利拿到之后,就可以解压文件了。
3.解压文件
打开文件:
可以发现这个文本里面嵌入了字母,而题目中已经提示了
“flag格式为DASCTF{},括号内为数字与小写字母的uuid。”
所以接下来我们要处理文本文件了。
4.处理文本文件
根据提示,我们可以通过编写NodeJS代码,来处理一下文本文件:
const{ readFile,writeFile }=require('node:fs/promises');const{ resolve }=require('node:path');const{decode,encode}=require('iconv-lite');try{const filePath =resolve('C:\\Users\\Administrator\\Downloads\\西游记的附件\\tempdir\\MISC附件\\西游记.txt');const contents =awaitreadFile(filePath);const text =decode(contents,'gb2312');
console.log(text.match(/[D|A|S|C|T|F|\{|\}]|\-|\d|[a-z]/g).join(''));}catch(e){
console.log(e.message);}
输出:
可以发现,这一串字符里面有很多混淆的内容。比如
D-------------7529ASCTF{
里面这个
-
和
7529
就是混淆干扰。仔细看文本,这些干扰其实来自“本章字数:****”,接下来,我们需要替换掉这些字数,字数都是4位的整数,需要替换为空字符串
""
。打开nodepad++,选中“搜索”->“替换”:
注意:打开文本时,鼠标焦点要放到最开始的位置,因为匹配是从焦点开始寻找。
可以看到最后替换完成之后的内容:
我们再次利用上次的NodeJS代码,执行一次,输出:
5.手动删除多余字符
根据提示
"flag格式为DASCTF{},括号内为数字与小写字母的uuid。"
UUID的格式是
8-4-4-4-12
的小写字母和数字。所以我们可以对文本
"D-------------ASCTF{j4900bdff-3d75-11ed-aa7c-DDf889DDd2DDDDDD81b666DD}DDDDDDDDDDDDDDDDDDDDD{DDDDDDDDD"
进行删除,得到
"DASCTF{j4900bdff-3d75-11ed-aa7c-f889d281b666}"
。最终我们得到答案:
"j4900bdff-3d75-11ed-aa7c-f889d281b666"
总结
以上就是第二道CTF题目的解题过程和思路,可以发现,解题的过程充满了猜测和思考,这来源于经验积累,能够编码解决基本的文本处理任务,能够根据题目提示手动处理文本,有的时候手动处理比写代码还要快些o( ̄︶ ̄)o
版权归原作者 fredricen 所有, 如有侵权,请联系我们删除。