Axton
Always dream. Always explore.
无垠

Milkice 跨年红包解谜 Writeup 及无垠跨年红包解谜答案

又到了水文章的时间呢

先说明一下,这篇文章原本不是在计划中的,而原来说好的「在路上的两篇」文章绝对不会咕。我自己的红包答案本来打算直接塞在年度总结里的,结果发现稍微有些长,再加上我还花了一些时间解了奶冰的红包解谜游戏,就打算把两个解谜过程放在一起单独写一篇文章。真是个水文章的好理由(被打死

冰的红包

奶冰的红包题目比我的难多了,所以让我们先从难的开始吧。首先看一下题目

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-2.jpg

入口是 happy.2020.milkice.me,扔到浏览器里面表示找不到 IP,那么大概率就是 DNS 的 TXT 记录了,查一下得到 nb2hi4dthixs63ljnrvwsy3ffzwwkl3tivrvezluomxxg5dsmvqw2ltqmnqxa3th

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-3.jpg

第一眼没看出来是什么编码,直觉是 BaseXX 系列的编码,加上提示“不只有 Base64”,可以推断出是 Base32,转大写解码得到 https://milkice.me/sEcRets/stream.pcapng。是个 URL,下载得到一个 Wireshark 文件,打开一看是和某 USB 设备的通讯抓包。不会做,不做了。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-4.jpg

奶冰提示我“Google 上搜得到”,结合第二条提示搜索“wacom pcapng”找到了这篇文章这™就是答案啊)。看起来是一样的套路,即通过解析数据得到数位板上画的内容,于是按文章的思路筛选出数位板发给主机的数据,导出,然后再用 tshark 导出文本数据。本来我想直接用文章中的 POC 的,结果折腾半天因为源的蜜汁原因库没装上,于是按文章中给出的数据结构自己写了段代码,分别导出 X、Y 轴数据扔进 Excel 画散点图。(别问我为什么用 Excel,因为我手边没有更好的工具了

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-8.jpg

翻车现场之一

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-13.jpg

懵逼奶冰.webp

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-1.jpg

看得出有手写文字,不过是上下颠倒的,翻转图片得 https://milkice.me/2020/uso.zip。是个 zip,下载打开一看,有密码。不会解,不做了。 第一反应是暴力解密码,但是暴力跑了 15 分钟还是没有跑出来。暴力太不优雅了,肯定不是正确思路,但奶冰什么都不肯说了。不过在这时我终于发现第一个红包口令码就藏在压缩包的注释中,Get。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-15.jpg

然而题还没解完,回去看提示,看到提供了 osu 谱面下载,于是打算不管怎么样先下载来看看。然而 osu 谱面下载要登录,只好又花了几分钟找到第三方站点,成功下载。这时候可以注意到 uso.zip 里有个同名文件(432314 Mike Greene - Bill Nye the Science Guy Theme Song (Chinese Intro).osz),可以联想到是明文攻击。好吧,上 ARCHPR,十秒解出。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-5.jpg

现场还原.jpg

.osz 文件并不是明文,猜测是压缩包(和 .pptx 一个思路嘛),于是改后缀 .zip 顺利打开。然后红包口令码就藏在奶冰的 .osu 文件中了,由提示可知是明文,打开即可得到。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-14.jpg

我的红包

相比起来我的题目就简单很多了嘛...三天时间一共发出了 25 个红包,包括一位重复领取的🌚,比前几年还是多了一些的。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-16.jpg

这位同学以后请不要多次领取🌚

那么来看看答案吧。

第一阶段

=CE=B1=D1=85t=D0=BEn.=D1=96m/=D1=81=D0=BEd=D0=B5_=D0=BEf_2020_=E2=92=88m=CF=81=D0=B7

首先观察字符串,可以发现 . / _ 等一些 ASCII 字符原样留在了字符串中,而其他字符被由 = 和十六进制构成的某种编码所替代。如果你正好有所了解,你应该能认出这是 Quoted-printable 编码,这是一种常用于邮件中的编码,可以用这个页面解码。如果你不了解,你也应该可以发现这种编码和 URL 编码非常相似。如果你把 = 替换为 %,那么你就可以用各种方法顺利地把它按 URL 编码来进行解码,最后可以得到 αхtоn.іm/соdе_оf_2020_⒈mρз。这个字符串里大部分字符都不是 ASCII 字符,只是长得像而已。根据第一个提示“全是 ASCII 字符”,按样子把字符串用 ASCII 字符抄一遍,可以得到最终 URL 为 axton.im/code_of_2020_1.mp3

第二阶段

下载音频,可以听出音频是经过某种处理的白噪音。白噪音的特点是各频段的功率都均匀分布,在白噪音上做文章,很容易就可以联想到线索藏在频谱中。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-8-1.jpg

频谱被处理成了 24x3 的网格,结合第二条提示“24x3,横向读取”可以推断出是将频谱当作二进制读取,得到 01111001 01110010 01100011 00101110 01101101 01100101 00101111 00110010 00110000,转为 ASCII 字符可得 yrc.me/20

第三阶段

打开上一步得到的页面,提示要求输入十位数密码。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-10.jpg

如果你在上一步注意到了这个音频文件奇怪的属性,你可以反应过来这里的密码就是 2000202020

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-11.jpg

如果你没有注意到,查看页面代码可以看到一条注释 <!-- Tips: the attribute of the audio --> 将你引导向音频文件的属性。输入密码,解锁即可进入下一步。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-9.jpg

第四阶段

可以看到是一张图片,内容为“.JPG”和“.ZIP”。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/2020-1-scaled.jpg?imageView2/1/w/724/h/1024/interlace/1/q/90#

和去年一样的套路,下载图片,将后缀名改为 .zip 然后打开,可以看到 README.txt。

最后一步

查看 README.txt 的内容,可以了解到需要去 🤔.axton.cc 获取红包口令码。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-12.jpg

扔到浏览器里会出现奶冰同款找不到 IP,于是可以联想到 TXT 记录。唯一的问题是 🤔 这个 Emoji 需要如何处理。域名使用 Punycode 将 Unicode 字符转换为 ASCII 字符,特点是以 xn-- 开头。如果你把上面这个域名扔进浏览器,你会发现它变成了 xn--wp9h.axton.cc。然后查询 TXT 记录,即可得到红包口令码。

https://acdn.flyhigher.top/wp-content/uploads/2020/01/rp-7.jpg
赞赏
本文链接:https://flyhigher.top/develop/1519.html
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可

发表回复

textsms
account_circle
email

  • hsjam

    第一步就卡住了,以为是base64,把. = _去掉后试了半天没成功就放弃了

    4年前 回复
  • AngryYogurt

    最后一步第一时间就想到dns record,但是尝试把emoji贴进几个终端都拿不到结果就没有在dns上深入,确定线索是dns之后找了几个在线工具,只有两个能nslookup出来(https://centralops.net/co/NsLookup.aspx),应该是终端编码的问题

    4年前 回复
    • AngryYogurt

      @AngryYogurt: 另外求截图里的频谱分析工具 :roll:

      4年前 回复
    • Axton博主

      @AngryYogurt: 这是一个,另外 nslookup 这种工具也似乎是要手动编码之后才能正确查询这类域名的

      4年前 回复
      • NoName

        @Axton: 输入进Chrome会自动蹦出来,比方说把:.com 复制到地址栏试试 :cool:

        4年前
  • 受儿才不喜欢你呢

    其实本来不简单的喵,主要巨巨太心软啦,巨巨可能都没想那么多,但是却无意中漏题了,哈哈哈。受儿的意思是说,巨巨在那篇问题的评论区提示太多啦……比如用“DNS”直接回复“卡在最后一步那评论”,直接暴露“题目的设计思路”……还有,咱看到29分钟前竟然有评论(“太菜了哈哈哈,我以为axton.cc里面有线索,在里面逛了半天 :roll:”)直接贴了答案的网址,而且还说了自己的失误,这简直是提示要从网址的某些不能直接看到的属性去猜测了…

    这些加起来,简直是直接看评论区就能知道最后应该试着 nslookup 查询了。换句话说,其实很多时候领不到红包的,应该也不是太菜了,就只是没法像巨巨那样可以很自如就衔接不同的“知识”,但是评论区巨巨还有别人的“提示”,完全是在扫除这种障碍……

    PS:本来都打算点发射了,但是受儿突然就想到,既然连巨巨这么厉害的人,都没法意识到“那些对某个人的提示,会打通很多人的思路”,那就真的是“其实大家都是不聪明的,因为每个人擅长的东西截然不同,就代表肯定每个人都有短板”,而受儿之所以得“躁郁症”这种精神疾病,甚至发作到被学校送去住院,估计就是因为以前从来不相信这句话呢。自己只要有不会的,又问不到“老师”和“朋友”,也搜索不到,就会非常暴躁,对自己很生气,觉得自己简直是废物,大概就是“绝对完美主义”……

    4年前 回复
  • StarFork

    大佬大佬,666666

    4年前 回复

无垠

Milkice 跨年红包解谜 Writeup 及无垠跨年红包解谜答案
又到了水文章的时间呢 先说明一下,这篇文章原本不是在计划中的,而原来说好的「在路上的两篇」文章绝对不会咕。我自己的红包答案本来打算直接塞在年度总结里的,结果发现稍微有些长,再…
扫描二维码继续阅读
2020-01-02