SecretFS

  • Write-up Author:
  • Email:
  • Solver:

Edward 交上了新的 MM 后,把 MM 的照片偷偷放在了他设计的一个文件系统的文件夹里。不想看看吗?
nc 119.254.101.232 8888

Abstract

這題主要分兩個 stage。

  • Stage 1: 算出 sha1 明文。
  • Stage 2: 從眾多的 folders 中,找出 secret folder 與其他 folder 的關係。這裡又分別有五個階段,分別是從 10,20,50,100,100 folders 中找出 secret folder 與其他 folders 的關係。

Stage 1 solution

直接算出明文。

python
q = recvuntil(":\n").split("=")
mid = q[0][9:17]
sha1 = q[1].split("\n")[0].strip()
done = False
l = [''.join(c) for c in itertools.product(string.lowercase, repeat=2)]
for i in range(9999+1):
for c in l:
plain = '{0:04}'.format(i) + mid + c
if hashlib.sha1(plain).hexdigest() == sha1:
print "PLAIN:", plain
done = True
break
if done:
break
s.send(plain+"\n")
`

Stage 2 solution

原本一直想不到該如何建 folder tree,不過後來用了點小小技巧,直接暴力找出某個 folder 與其他 folder 間,click 次數都超過一時,就可將它視為 root folder,並且只接一個 secret foler 下面再接著其他的 folder,因此可藉由該 root folder 與其他 folder 的 click 次數減一 ,就會是其他 folder 和 secret folder 間的 click 次數,而 root folder 與 secret folder 的 click 次數則為 1,不論在 10,20,50,100 個 folders 都可以適用,這樣這題就解完了。