前言:CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。——度娘
(可恶,B站居然把我特地标注的<a herf=>站外链接全部击破,我蚌埠住了,只好用Markdown形式展示地址,可能会影响页面美观度,敬请谅解)

该CTF(Capture acao's yT Fun) 是 [星图Project](aswebp.club) 的一部分
最开始是在看【A-SOUL/星图Project】《月舞》【贝拉生贺原创曲】的时候看见@ 梦或一生 的评论知道原来生贺还有CTF可以玩。准高三学生没有什么机会参加AU们的活动了,那就趁这次玩一把吧_(:з」∠)_
本人没有任何CTF基础,只是曾经在Sukka大佬的博客看见过她打CTF的文章,感觉好刺激╰(*°▽°*)╯,没想到有一天自己也能参与。话不多说,来看题吧~
本关页面:[第一关](https://www.aswebp.club/ctf/KDrZt.html)
知识点:HTML,JavaScript

第一关
线索说得很明白,F12(新版Edge变成了Ctrl+Shift+I)打开开发者工具,flag就在HTML源代码中:
<script type="text/javascript">
function ctf_function_one() {
var value = ctf_one_form.value_first.value;
if (value == "VrGdKb-OkFhdn-FebzaI-JkYVuT") {
alert("恭喜你拿到了去下一关的钥匙")
console.log("下一关地址:aRxZf.html")
}else{
alert("密码好像不对捏")
}
}
</script> 本关页面:[第二关](https://www.aswebp.club/ctf/aRxZf.html)
本关知识点:Reverse Engineering - 逆向工程?

第二关
不愧是顶碗人。还好它寄了,要不看这提示我应该是做不出来。
本关页面:[第三关](https://www.aswebp.club/ctf/fRbCX.html)
本关知识点:Misc - QRcode

第三关
是鲨鲨,但你为什么放Gawr Gura的图啊喂。看题干知道这是一道隐写术的题目,先解二维码,解出来是:
拉姐我太笨了,学到最后也只能学会喜欢你,怎么办捏。
那你就继续笨着吧!(轻笑)挺好的,我挺喜欢的,笨笨~的孩子,笨笨的贝极星们。
再打开WinHex解析找找文件头和文件尾,没有多余信息,这下没头绪了。去知乎看教程,一眼看见png类型解析里面有010Editor。我超,010?这不是鲨鲨吗?虽然作者是不是想提示这个_(:з」∠)_,但当时我就感觉自己悟了,因为png类型图片可以通过改变图片长宽来隐藏信息。下载010Editor和png模板,改变half-1.png图片的高度,发现下半部分没有数据。再用pngcheck检查文件结构,最终都没有发现有多余的信息。截止做到这里,三个网页上都没有其它png文件,如果答案确实储存在png中,应该锁定在本页的两张。这个时候已经凌晨了(趁着B站宕机打打CTF),先去睡觉。
第二天(7.14)早晨醒来,页面上多出了一行提示,反倒更令我坚信信息在png里。方向错了当然解不开。等到下午,第三关作者(是rp的吧)把本关给冲了。Well,我们去下一关。
后来得到了作者的提示,被吃掉的信息在二维码中。或许,信息隐藏在源字节流中?使用ZXing Decoder Online可以获得Raw Bytes,但是似乎没有隐藏字符呢。就等待官方题解公布吧。
7.15 凌晨更新:得到糖佬肯定使用010Editor作为解谜工具以后终于解出了谜底。
flag{BvTgHj-LeWoBc-PtRsBg-jfDRBh-JhcZeR}
fRbCX.html
上文的基本思路还是比较正确的,通过修改图片规格字段来揭开隐藏的信息。然而,对jpg图像使用更改长宽的题型在CTF中比较少见(我没打过CTF,只是看过别人打CTF_(:з」∠)_,从而也算有点“经验”),看网络教程很难想到。CTF中的jpg加密:简单的就如第四题带一个rar包,复杂的就偏向于使用算法对图像变换加密,比如 [这篇博客](https://www.jianshu.com/p/e75b4baa93f1) 就介绍了JPEG隐写分析中的三大算法理论,如残差图像的离散余弦变换等。之所以绕了个大弯,是因为教程在png图片结构讲解处提到了更改图片规格,而没有迁移运用到jpg图像上来。其实如果熟悉jpeg文件规范,应当能够快速想到在SOF0标记的帧开始字段储存有图像高度信息(image width),只需要更改高度就能还原出图片下半部分。在我看来,此题的加密方法其实防御性并不高,但思路比较难想到,因此难度会略高于第四关。如果本关放在第四关后,或许就能直接排除在文件中找数据的方法,进而尝试其它思路。
附上和糖佬的提示_(:з」∠)_

第四关 隐写术
本关页面:[第四关](https://www.aswebp.club/ctf/VfRgU.html)
本关知识点:Misc - jpg隐写术

第四关
明摆着是隐写术了,下载本页面的 chabuduodelee.jpg ,使用010Editor发现文件尾有字符串,指向一个 [图床页面](https://ftp.bmp.ovh/imgs/2021/07/78358f152ea727de.jpg),再无多余信息。
进入网址下载 78358f152ea727de.jpg, 检查文件尾,发现字符串,指向另一个 [图床页面](https://ftp.bmp.ovh/imgs/2021/07/d6da08abe688bdb3.jpg),紧跟着一个zip文件头 50 4B 03。将该jpg文件后缀改为.rar,解压得到flag.txt
加密算法啊,你瞅瞅你带那几个贵物,害有你,银不银鬼不鬼滴就你还要来破解我啊。
你记住了,在加密领域,别让我看到你,看到必须外壳给你拽掉必须狠狠打你密文。
我告诉你啊隐写术,遇到十六进制编辑器了,指定没有你,好果汁吃啊你记住了。
RSA,私钥和密文到我手里了啊,你们师徒三人面对我们师徒三人,来解密工具给他整个活!
艹,走,512bit!
本关密钥 flag{NbLfxd-UbFdVh-KhTbCx-HfVdRh}
下一关地址 BfGhY.html
很明显是在给下一关的解密方法给暗示了。顺手下载第二个链接的jpg,发现文件尾也有多余的字节,但是是乱码,留着备用。现在看来,这应该是为了迷惑用十六进制工具暴力破解的家伙吧_(:з」∠)_。
本关页面:[板块一](https://www.aswebp.club/ctf/BfGhY.html) [板块二]
(https://www.aswebp.club/ctf/sGfHe.html) [结束页面](https://www.aswebp.club/ctf/IrBdS.html)
本关知识点:Crypto - 密码学

第五关 板块1
好巧不巧,中午看CTF入门教程恰好看见佛论禅解密的教程。然而我寄了,必应搜了好几个佛论禅解密网址都无法解密。在搜索关键词里面加个CTF,用CSDN介绍的解密网站就解开啦。
明文1:sGfHe.html
明文2:ysy5fmjLDmTldKXdzLk5Os5ThMW1X+htc0WJlnxcixHl+ocpacJUlje7Utk1tlxrkWBqYtGPcvnlpmnXqeDMaA==
明文1明显是下一关的地址,明文2好熟悉的感觉啊,我是不是在哪里见过你?对了,配置github SSH密钥的时候见到过类似的东西,而SSH key即是使用RSA加密。继续跳转至下一个页面:

第五关 板块2
这下蚌埠住了,以为是字符串替换之类的东西,得上统计学,搞不来搞不来,直接放弃。后来得到AU提醒,这是Jsfuck(一个很有意思的Javascript特性)。没学JS玩不来啊😭。
把网页上的一堆东西粘贴到开发者工具Console控制台,得到返回值"pri_key.txt"。放入网址链接即可得到RSA加密的私钥。那么上面那个就是等待解密的签名了!使用RSA解密工具解密,得到最后的网页:IrBdS.html

终点页面
尽头的页面非常简单,但是十分令人感慨。今天官号发布然然身体不适的消息,评论区都在让然然好好休息。ASOUL的大家都要好好吃饭,好好睡觉,好好生活。准高三的这个暑假也不能摆烂捏,再也不熬夜了。
结束页最后一句是制作者@ 幽默软糖 的签名,感谢大佬制作了这么有趣的解谜游戏,学到了很多。@ 梦或一生 说大佬rp了好一会儿才承认,我是先问了另一位Staff,他直接告诉我是软糖大爹做得捏。
这次活动玩得好开心,和AU们讨论解题的过程十分有趣。贝拉生贺的系列活动和网站做得真是太精彩了,果然粉丝随偶像,目标TOP IDOL捏。贝极星都是最棒的!期待拉姐生日会!