QQ乐园首页-提供最新QQ技术网以及QQ业务免费开通乐园网!

搜索

攻击会话管理系列-4

2017-9-3 17:54| 发布者: Hide| 查看: 134| 评论: 0

摘要: 生成的数字随机性不强 计算机中的数据极少完全随机。因此,如果由于某种原因需要随机数据,一般通过软件使用各种技巧生成伪随机数字。所使用的一些算法生成看似随机并且在可能的数值范围内平均分布的序列,但有些人 ...

 生成的数字随机性不强
     计算机中的数据极少完全随机。因此,如果由于某种原因需要随机数据,一般通过软件使用各种技巧生成伪随机数字。所使用的一些算法生成看似随机并且在可能的数值范围内平均分布的序列,但有些人只需要少数几个样本,仍然能够准确推导出整个序列。
  如果使用一个可预测的伪随机数字发生器生成会话令牌,那么得到的令牌就易于受到攻击者
的攻击。
  Jetty是一种完全UJava编写的常用Web服务器,它为在其上运行的应用程序提供一种会话管理机制。2006年,NGSSottwarei的Chris Anley发现这种机制易于受到会话令牌预测攻击。该服务器使用Java APIjava.util.Random生成会话令牌。它执行一个“线性同余发生器”(linear
congTIIenlial generator),通过以下算法生成序列中的下一个数字:
    synchronized pro.ected int next (int bits/(
    seed=【seed t OX5DEECE66DL OXBLl&(ClL(48)  1】
    ret一【intl iseed…(48 - bits/】.
  这种算法实际上是用生成的最后一个数字乘以一个常数,再加上另一个常数,生成下一个数字。得到的数字被截短至48位,然后,算法再将结果进行转换,返回请求方要求的位数。
  了解了这种算法和由它生成的一个数字后,就可以轻易推算出接下来将要生成的数字.并且(利用一点数论知识)推导出它之前生成的数字。这意睐着攻击者只需从服务器获得一个会话令牌,就可推测出所有当前和将来的会话令牌。注解有时,令牌根据一十伪随机数字发生嚣的输出而生成,因此开发者决定将发生器的几个连续输出连接起来建立每个夸牌。开发者认为使用这种方法可建立一个更长因而“更强大”的令牌。但是,这种幕略通常是一种误解。如果攻击者能够获得发生器生成的几个连续输出,他们就可取通过它们推断出发生器内部状态的一些信息,因
此更容易向前或向后推导发生器的输出顺序。
  其他非定制应用程序框架在生成会话令牌时使用极其简单或可预测的熵源,其中许多熵源甚至可咀确定。例如.PHP框架5 3 2及早期版本基于客户端的lP地址、生成令牌时的纪元时间、生成令牌时的微秒,以及线性同余发生器来生成会话令牌。虽然其中有几个未知值,但是,一些应
用程序可以披露相关信息,从而推断出这些值。社交网站点可能会记录用户的登录时间和IP地址。此外,该发生器使用的种于是PHP进程启动的时间,如果攻击者对服务器进行监视,就可以将这个值缩定在一个很小的范围内。
注解这是一个不断发展的研究领域。
2001年,Ful¨l Disclosure邮件列表指出PHP会话
令牌生成过程存在缺陷,但并未证实该缺隋可被利用。2010年,Samy Kamkar最肄使
用phpwn工具实现了对这一缺陷的利用。

http://www.qqhello.net/
普及network security意识 
不要对network security一无所知

鲜花

握手

雷人

路过

鸡蛋
返回顶部