web渗透测试(高级) 第8课:随机性问题

根据开发人员如何生成随机数或字符串,创建的值可能会越来越随机。最大和最大的错误是使用常数或当前时间手动播种随机发生器; 这将允许攻击者能够预测已生成和将要生成的值。

 

在本节中,我们将看到一些可以说服随机并不总是随机的示例。

密码随机性问题

 

Example 1

第一个例子就是为了说明随机是如何随机的。问题来自使用种子随机生成器。开发人员使用该值为0随机生成器播种。

 

如果您只是重播脚本,您应该能够找到为管理员生成的密码admin

 

Example 2

此示例显示了随机生成器的不良播种的另一个示例。随机发生器以当前时间播种。

 

要以admin密码的方式工作,您需要强制种子。为此,您可以从当前时间开始并减少它,同时重放用于生成值的算法,直到您获得密码。

 

获得密码后,您就会知道使用了什么种子(或者更准确地说是随机生成器初始化的时间)。然后,您可以获取admin密码。

 

Example 3

这个例子非常简单,与第一个类似。您只需重播代码即可获取admin密码。密码长度是随机的这一事实对您可以猜测的事实没有影响。

 

Example 4

在这个例子中,你不知道在生成密码之前使用随机生成器的次数(因为它是一个调用而rand(1000)不是s.rand(1000)。你仍然可以生成以前的密码。要得到它,你只需要粗暴强制此值,直到您获得密码。

付杰
  • ¥ 198.0元
  • 市场价:398.0元
  • ¥ 99.0元
  • 市场价:129.0元
  • ¥ 298.0元
  • 市场价:598.0元
  • ¥ 39.0元
  • 市场价:39.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: