CTF。Firefox中的密码。Android密码。位翻转攻击。解决r0ot-mi Crypto的问题。第三部分

图片



在本文中,我们将打破排列和Vigenère密码,解密保存在Mozilla Firefox浏览器中的密码,应对Android拦截并应对Bit-Flipping攻击。先前的部分:



第1部分-使用PIL python进行编码,移位密码,暴力破解和图像创建。

第2部分-地穴,XOR,未加密的ZIP和PRNG破解。



组织信息
, - , :



  • PWN;
  • (Crypto);
  • c (Network);
  • (Reverse Engineering);
  • (Stegano);
  • WEB-.


, , , .



, , Telegram . , , .



. , - , .





Mozilla Firefox密码







我们需要找到用户的密码。下载并打开包含.mozilla目录的档案。该目录包含一个带扩展名的文件夹和一个带浏览器名称的文件夹。







由于我们对扩展不感兴趣,因此请转到diu浏览器。有一个配置文件配置文件和一个目录。







我们进入文件夹并查看文件。







数据库中存储的所有密码都是加密的,因此您将无法像这样看到它们。您可以使用此脚本进行解密

python3 firefox_decrypt.py ~//.mozilla/firefox/o0s0xxhl.default/






Vigenère密码







我们得到了一个加密的文本,我们需要找到它的作者。由于这是Vigenère密码,因此我们将使用在线解码器







我们选择自动模式。







然后我们得到纯文本和密钥。谷歌搜索文本并找到作者。



Android锁定模式







我们得到了android文件系统的转储,并要求找到密码。这对于访问文件系统非常容易。密码哈希(SHA1)位于/data/system/gesture.key文件中。







我们可以获取并扭曲哈希,也可以使用androidpatternlock







找到密码和模式。



置换密码







我们收到了一条加密的消息,并要求对其解密。由于这是Rail Fence密码,因此我们将使用已经熟悉的在线解码器







现在,在提议的解密中,我们需要选择一个具有有意义文本的解密。







我们得到了答案。



AES CBC-比特翻转攻击







我们给了主机和端口进行连接。让我们使用netcat进行连接。







我们提供了操作选项-注册或登录。让我们先注册。







并且为我们提供了部分开放和加密的文本。现在,我们使用此令牌登录。







但是登录后,由于我们不是该组的成员,因此无法访问数据。







整理好任务后,现在让我们来应对Bit-Flipping攻击。这种攻击通常发生在以下情况下:加密函数在加密之前需要一些输入,附加一个随机字符串并在其上附加另一个字符串(我们的情况)。



下图是使用AES CBC算法解密消息的图。







事实是,密文的前一个块与下一个块进行了异或运算,以删除文本覆盖,因此我们得到了解密后的文本。



因此,如果我们在前一个块中更改了一个字节的密文,则在下一个块中将更改一个明文字节。







现在让我们回到任务。明文具有is_member = false参数。很难想象如何改变。但是由于具有等式的符号,因此为了使整个文本成为块大小的倍数,我们可以更改它们,以便在解密时获得字符串is_member = true。



让我们弄清楚如何做到这一点。该行应在解密的最后一块EvilP2中获得。为此,我们需要收集EvilC1块。







怎么做:我们有CC1和PP2。通过将它们一起代理,我们可以获得DC2。由于我们知道EvilP2包含“; is_member = false]”,并且我们知道DC2,在我们自己之间代理它们,因此可以得到EvilC1。



让我们再次注册。







我们初始化初始参数。







现在我们得到了我们所知道的块。







现在我们得到了新的块。







我们收集负载。







我们尝试登录。







一无所获,他们找到了我们。这很可能是由于存在两个相同的参数。让我们杀死第一个。







现在我们成功登录并获得令牌。







您可以通过电报加入我们... 让我们建立一个社区,在这个社区中,将有很多IT领域的专家,然后我们可以在任何IT和信息安全问题上互相帮助。



All Articles