【问题标题】:Is Padding Oracle Attack possible with always 200 OK response总是 200 OK 响应是否可以填充 Oracle 攻击
【发布时间】:2011-08-11 01:35:56
【问题描述】:
我目前正在执行 ASP.NET 应用程序的渗透测试,并试图利用 Padding Oracle Attack。此 AFAIK 是基于响应代码分析,但被测系统的 ScriptResource 和 WebResource axds 始终以 200 OK 响应,即使密码已无效。但是,在这种情况下,响应的内容是一个空字符串。
在这种情况下,是否可以使用任何 axd 作为预言机?也许基于响应内容的差异。
【问题讨论】:
标签:
asp.net
security
cryptography
padding-oracle-attack
【解决方案2】:
Padding Oracle Attack 能够区分两种情况:
- 服务器未能解密数据,因为在解密时,它没有找到格式正确的填充。
- 服务器找到了正确的填充,但解密后的数据却是随机垃圾。
攻击者可能有多种方法来获得这种区分。来自服务器的特定错误代码是最容易利用的;但任何可检测的差异就足够了。攻击首先是published in 2002(是的,人们花了 8 年时间才注意到它可以应用于 ASP!)并且已经在 SSL 连接上进行了演示,只有时间差异:服务器正在解密数据,然后仅在解密正常时才验证 MAC; MAC 计算所花费的额外 2ms 足以让攻击者知道填充是否有效,从而允许直接应用 Padding Oracle Attack。
【解决方案3】:
要回答您的原始问题,可以使用内容长度。 Padbuster 记录了状态代码,但我认为它完全检测到响应长度。
为了回答您对 Troy 的回复,较长的密文长度并不表示它们容易受到攻击。通常,较短的密文长度确实表明它们很容易受到攻击,但是您需要对值进行 dot net url 解码,然后查看模数 8=0 是否容易受到攻击。换句话说,长度将是 8 的倍数。通常我会看到一个密文块(16 个字节)一旦被点网 url 编码,最终会变成大约 25 个字节。该修复程序包括一个 HMAC(我认为),它扩展了长度并且应该使一个块密文成为不可能。我不能肯定地说这个,因为我不确定 HMAC 有多长以及它在填充后是否有效。