学习啦>学习电脑>网络知识>网络技术>

如何正确地使用加密与认证技术(3)

时间: 恒辉636 分享

  0x03 如何攻击未经认证的加密

  比方说,在登录到这个应用程序之后,你会发现你收到一个会话cookie,看起来就像

  kHv9PAlStPZaZJHIYXzyCnuAhWdRRK7H0cNVUCwzCZ4M8fxH79xIIIbznxmiOxGQ7td8LwTzHFgwBmbqWuB+sQ==

  让我们改变一个字节的第一块(初始化向量),并反复发送我们的新的cookie,直到出现一些变化。应该采取共4096次HTTP请求,以尝试变量IV所有可能的单字节变化。在上面的例子中,经过2405次请求后,我们得到一个看起来像这样的字符串:

  kHv9PAlStPZaZZHIYXzyCnuAhWdRRK7H0cNVUCwzCZ4M8fxH79xIIIbznxmiOxGQ7td8LwTzHFgwBmbqWuB+sQ==

  相比之下,在base64编码的cookie中只有一个字符不同(kHv9PAlStPZaZ J vs kHv9PAlStPZaZ Z):

  - kHv9PAlStPZaZJHIYXzyCnuAhWdRRK7H0cNVUCwzCZ4M8fxH79xIIIbznxmiOxGQ7td8LwTzHFgwBmbqWuB+sQ==

  + kHv9PAlStPZaZZHIYXzyCnuAhWdRRK7H0cNVUCwzCZ4M8fxH79xIIIbznxmiOxGQ7td8LwTzHFgwBmbqWuB+sQ==

  我们存储在这个cookie里的原始数据,是看起来像这样的数组:

  array(2) {

  ["admin"]=>

  int(0)

  ["user"]=>

  "aaaaaaaaaaaaa"

  }

  但在仅仅改变初始化向量的一个字节之后,我们就能够改写我们的阅读信息:

  array(2) {

  ["admin"]=>

  int(1)

  ["user"]=>

  "aaaaaaaaaaaaa"

  }

  根据底层应用程序的设置方法,你或许可以翻转一位进而提升成为一名管理员。即使你的cookie是加密的。 如果你想再现我们的结果,我们的加密密钥是十六进制下的:000102030405060708090a0b0c0d0e0f

如何正确地使用加密与认证技术(3)

0x03 如何攻击未经认证的加密 比方说,在登录到这个应用程序之后,你会发现你收到一个会话cookie,看起来就像 kHv9PAlStPZaZJHIYXzyCnuAhWdRRK7H0cNVUCwzCZ4M8fxH79xI
推荐度:
点击下载文档文档为doc格式
168319