菜鸡web手这场比赛全程挂机……web是真的越来越难打了
cant_even_unplug_it
一题脑洞了2333
题目+hint放一放
1 |
You know, we had this up and everything. Prepped nice HTML5, started deploying on a military-grade-secrets.dev subdomain, got the certificate, the whole shabang. Boss-man got moody and wanted another name, we set up the new names and all. Finally he got scared and unplugged the server. Can you believe it? Unplugged. Like that can keep it secret… |
一开始看到这道题目懵逼了,怎么没有网站???经过菜鸡谷歌+半懵半猜终于读懂了题目(wtcl
他们在military-grade-secrets.dev这个子域建了一个网站,但是他们改变了网站名,所以我们首先要将原来的网站名找出来
首先所有的域名和名称更改都通过DNS进行追踪,用https://securitytrails.com/dns-trails 去查看同一个子域下的其他域名,可以看到这个
访问一下secret-storage.military-grade-secrets.dev发现会自动跳转去forget-me-not.even-more-militarygrade.pw这个网站
现在我们再看一下forget-me-not.even-more-militarygrade.pw这个网站,可以看到这里有个DigitalOcean
所以这个网站曾经在Digital Ocean上托管过,接着再去https://archive.org/web/ 去找网站的快照就会找到4月27日有一个
redacted-puzzle
identify分析一波,可以看到只有个别像素变了,其他基本没变
1 |
redacted-puzzle.gif[0] GIF 1280x720 1280x720+0+0 8-bit sRGB 4c 80KB 0.000u 0:00.019 |
stego看一下有个字母表?
接着identify -verbose redacted-puzzle.gif
查看一下图片签名,可以看到black被定义了三次??
1 |
Colors: 1 |
因此即使底色为黑色,图片依旧能存储,所以其实图片的存储并不是真正的一整张图片的存储的,我们尝试一下修改一下每帧的调色板并且将它们保存成png图片
1 |
#!conding: utf-8 |
接下来就是脑洞了,拿到了上面的图片,都是一堆多边形,但是如果我们将它们全部拼在一起可以拿到一个八边形,让我们假设成二进制,就可以拿到一堆二进制,先看第一张图片
所以这个图片的二进制数就是10001100
我们将这些数字都列出来,联系字母表是32位,我们推测试base32变种
1 |
# 解密 |
所以最后解出来是
nodb
源码有个这个东西
1 |
function validateForm() { |
所以如果一个字符串通过了_authenticate
函数的认证而且放回seccess就是正确的flag了
接下来我们找一下_authenticate
在哪里出现过
有一个wasm.wasm
文件,我们先丢进去反编译一下,因为菜鸡的文件不知道为什么损坏了,所以只能贴上其他大师傅的图了
可以看到,如果要返回success,那就要满足v6==69
,但是这一段逆回去很难,代码很复杂,V6是计算这段字母里面有多少个字母是符合password的,因此,我们尝试一下暴力转v6,而且每一次强制匹配一个字母
继续看wasm文件,将它转成wat文件(虽然也不算非常好看,但是还是能看出来的,搜一下1245
只出现过一次,分析文件
利用_authenticate
返回正确的字数,我们一位位将flag爆出来
FROM:Xi4or0uji
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论