Padding Oracle Attack是否可以使用200 OK响应

时间:2011-04-22 15:58:10

标签: asp.net security cryptography padding-oracle-attack

我目前正在执行ASP.NET应用程序的渗透测试并试图利用Padding Oracle Attack。这个AFAIK基于响应代码分析,但是被测系统的ScriptResource和WebResource都会响应200 OK,即使密码无效。但是,在这种情况下,响应的内容是一个空字符串。

在这种情况下,是否可以使用任何axd作为oracle?也许基于响应内容的差异。

3 个答案:

答案 0 :(得分:3)

Padding Oracle Attack的工作原理是能够区分两种情况:

  • 服务器无法解密数据,因为在解密时,它没有找到格式正确的填充。
  • 服务器找到了正确的填充,但解密的数据结果是随机的垃圾。

攻击者可能有多种方法可以获得这样的区别。来自服务器的特定错误代码是最容易利用的;但任何可检测到的差异就足够了。攻击是第一次published in 2002(是的,人们需要花费8年的时间才能注意到它可以应用于ASP!)并且已经在仅具有时序差异的SSL连接上进行了演示 :服务器正在解密数据,然后只有在解密完成时才验证MAC; MAC计算所花费的额外2ms足以让攻击者知道填充是否有效,允许直接应用Padding Oracle Attack。

答案 1 :(得分:1)

要回答原始问题,可以使用内容长度。 Padbuster注意到状态代码,但我认为它完全取决于响应长度。

要回答您对Troy的回复,长密文长度并不表示他们容易受到攻击。通常,短密文长度确实表明它们是易受攻击的,但是您需要对网络网址进行解码,然后查看模数8 = 0以查看它是否容易受到攻击。换句话说,长度将是8的倍数。通常我会看到一个密文块(16个字节)一旦它的网络网址编码就会结束大约25个字节。该修复包括一个HMAC(我认为),它扩展了长度,并且应该使一个块cipertexts不可能。我不能肯定地说这个,因为我不确定HMAC是多长时间以及填充后是否有效。

答案 2 :(得分:0)

听起来像是填充oracle补丁可能已经安装,因此你没有得到你期望的错误代码。看看Do you trust your hosting provider and have they really installed the padding oracle patch,看看你是否可以建立这个。