6.7 KiB
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。
ECB
(ECB) 电子密码本 - 对称加密方案,它通过将明文的每个块替换为密文的块来进行加密。这是最简单的加密方案。主要思想是将明文分成N位的块(取决于输入数据块的大小、加密算法),然后使用唯一的密钥对每个明文块进行加密(解密)。
使用ECB有多个安全隐患:
- 加密消息的块可以被删除
- 加密消息的块可以被移动
漏洞的检测
假设你多次登录一个应用程序,每次都得到相同的cookie。这是因为应用程序的cookie是**<用户名>|<密码>
。
然后,你生成了两个新用户,他们的密码相同且几乎相同的用户名**。
你发现两个用户信息相同的8字节块是相等的。于是,你猜测可能是因为使用了ECB。
就像下面的例子一样。观察这2个解码的cookie中多次出现的块**\x23U\xE45K\xCB\x21\xC8
**
\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9
\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9
这是因为这些cookie的用户名和密码中多次包含字母"a"(例如)。不同的块是包含至少一个不同字符的块(可能是分隔符"|"或用户名中的某些必要差异)。
现在,攻击者只需要发现格式是<用户名><分隔符><密码>
还是<密码><分隔符><用户名>
。为了做到这一点,他可以生成几个相似且较长的用户名和密码,直到找到格式和分隔符的长度:
用户名长度 | 密码长度 | 用户名+密码长度 | 解码后的Cookie长度 |
---|---|---|---|
2 | 2 | 4 | 8 |
3 | 3 | 6 | 8 |
3 | 4 | 7 | 8 |
4 | 4 | 8 | 16 |
7 | 7 | 14 | 16 |
漏洞的利用
删除整个块
知道cookie的格式(<用户名>|<密码>
)后,为了冒充用户名admin
,创建一个名为aaaaaaaaadmin
的新用户,获取并解码cookie:
\x23U\xE45K\xCB\x21\xC8\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4
我们可以看到之前使用只包含a
的用户名创建的模式\x23U\xE45K\xCB\x21\xC8
。
然后,您可以删除前8B的块,这样您就可以得到一个有效的用于用户名admin
的cookie:
\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4
移动块
在许多数据库中,搜索WHERE username='admin';
和WHERE username='admin ';
(注意额外的空格)是相同的。
因此,模拟用户admin
的另一种方法是:
- 生成一个用户名:
len(<username>) + len(<delimiter) % len(block)
。使用块大小为8B
,可以生成名为username
的用户名,使用分隔符|
,块<username><delimiter>
将生成2个8B的块。 - 然后,生成一个密码,该密码将填充包含我们想要模拟的用户名和空格的确切块数,例如:
admin
该用户的cookie将由3个块组成:前两个块是用户名+分隔符的块,第三个块是密码(伪装成用户名):username |admin
然后,只需将第一个块替换为最后一个块,就可以模拟用户admin
:admin |username
参考资料
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?想要在HackTricks中为你的公司做广告吗?或者你想要获取PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组或电报群组,或在Twitter上关注我🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。