HackThisSite - Steganography Mission 10

Challenge

Steganography — I am not Shakespeare!

题目图片里是一段关于 bacon(培根)的文字,要求从中找出密码。提交字段 pass, POST 到 /missions/stego/template.phpformkey 每次加载都变,且必须带 Referer: https://www.hackthissite.org/missions/playit/stego/10/,否则回 Invalid Referer 且不计分)。

Solution

题面那句 I am not Shakespeare! 是双关:字形用的是文字排版(图里每个字母有粗体非粗体两种形态),这就是 Bacon 密码需要的两种符号。

1
2
3
粗体字母   -> B
非粗体字母 -> A
按阅读顺序每 5 个字母一组 -> 查 Bacon 表(26 字母版)

按阅读顺序分组后,开头几组解出:

1
2
3
4
5
BAABB = T
AABBB = H
AABAA = E
ABBBB = P
AAAAA = A

整段解出:

1
thepasswordisnothere

也就是密码不在里面。真正的密码是最后那个词

1
2
3
$ curl -sL -b "$HTS_COOKIE" -e 'https://www.hackthissite.org/missions/playit/stego/10/' \
--data 'formkey=<从关卡页抓>&lvl=10&pass=nothere' \
https://www.hackthissite.org/missions/stego/template.php

提交后关卡页出现 You have already done this mission.,且该关的完成人数从 1497 变成 1498; profile 的 Stego: 行出现 (10)

Vulnerabilities

这是用排版当信道的经典隐写:信息的载体是字形属性, 所以只有把粗体/非粗体当二进制读才能还原。 防御视角上它说明:任何能被机器读取、又能承载人类可见信息的属性(粗体、下划线、行距、字色细微差别) 都可以被当作隐蔽信道,要防的应是下游自动化处理时忽略这些属性。

nothere