加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET加密漏洞是否适用于大型LIE?

发布时间:2020-12-16 07:31:20 所属栏目:asp.Net 来源:网络整理
导读:这个问题在某种程度上是 How serious is this new ASP.NET security vulnerability and how can I workaround it?的后续问题所以,如果我的问题似乎被打破,请首先阅读这个问题及其接受的解决方案,然后将其纳入我的问题的背景中. 有人可以解释为什么返回相同的
这个问题在某种程度上是 How serious is this new ASP.NET security vulnerability and how can I workaround it?的后续问题所以,如果我的问题似乎被打破,请首先阅读这个问题及其接受的解决方案,然后将其纳入我的问题的背景中.

有人可以解释为什么返回相同的错误页面和相同的自定义错误状态代码很重要?我发现这是无关紧要的,特别是如果这是作为其工作的一部分提倡的话.

是不是脚本/应用程序执行此攻击同样容易,而不是特别关心它是否获得http状态代码以及结果更多?即这样做了4000次,你被重定向到一个错误页面,在4001你留在同一页面,因为它没有使填充无效?

我知道为什么在错误页面中添加延迟有点相关,但是这也不会只是添加另一层来欺骗脚本以为该站点是无效目标?

如果脚本考虑到,由于该站点是asp.net,它运行AES加密,它会忽略错误页面的时间并监视重定向或缺少重定向作为响应向量,可以做些什么来防止这种情况?如果脚本这样做意味着没有办法阻止它?

编辑:我接受时间攻击减少,但错误页面部分是真正的虚假.此攻击向量将其数据放入视图状态.只有2个案例.通过.失败.

要么失败,要么在页面上,并且视图状态不包含其数据.无论你在这里做什么,都无法删除失败案例,因为除非成功破解密钥,否则页面将永远不会包含其插入的数据.这就是为什么我无法证明自定义错误的使用是否具有任何效果.

或者通过,它们位于页面上,并且视图状态包含其插入的数据.

此漏洞的摘要

获取来自WebResoure.axd / ScriptResource.axd的密钥,并且使用验证密钥的第一个猜测来生成具有加密文本的潜在密钥的值.

此时此值传递给WebResource.axd / ScriptResource.axd,如果解密密钥被正确猜测,他们的响应将被接受但由于数据是垃圾,因此它正在寻找WebResource.axd / ScriptResource.axd将返回404错误.

如果未成功猜到解密密钥,则填充无效异常将收到500错误.此时,攻击应用程序知道增加潜在的解密密钥值并再次尝试重复,直到它从WebResource.axd / ScriptResource.axd找到第一个成功的404.

成功推导出解密密钥后,可以使用该网站来查找实际的机器密钥.

解决方法

回覆:

How does this have relevance on whether they’re redirected to a 200,404 or 500? No one can answer this,this is the fundamental question. Which is why I call shenanigans on needing to do this tom foolery with the custom errors returning a 200. It just needs to return the same 500 page for both errors.

我不认为原来的问题很清楚,我会解决它:

谁说错误需要返回200?这是错的,你只需要所有的错误来返回相同的代码,使得所有错误返回500也会起作用.配置提议作为一个解决方案恰好使用200.

如果您不进行解决方法(即使它自己的版本始终返回500),您将看到404与500之间的差异.在webresource.axd和scriptresource.axd中尤其如此,因为解密的无效数据是缺少的资源/ 404.

仅仅因为您不知道哪个功能存在问题,并不意味着asp.net中没有功能在不同的场景中提供与填充与无效数据相关的不同响应代码.就个人而言,我不能确定是否还有其他功能可以提供不同的响应代码,我只能告诉你那些2.

Can someone explain why returning the same error page and same status code for custom errors matters? I find this to be immaterial especially if this is advocated as part of the work around to it.

斯里兰卡已经在你所关联的问题中非常清楚地回答了这一点

它不是隐藏而不是发生错误,而是确保攻击者无法区分错误.具体是关于确保攻击者无法确定请求是否失败,因为它无法解密/填充无效,因为解密数据是垃圾.

你可能会说:好吧,但我可以确保它对应用程序来说不是垃圾.当然,但你需要在应用程序中找到一个允许你这样做的机制,以及攻击的工作方式你总是需要在消息中至少有一点点垃圾.考虑这些:

> ScriptResource和WebResource都抛出,因此自定义错误会隐藏它.
>默认情况下查看状态未加密,因此默认情况下不包含攻击向量.如果您遇到打开加密的麻烦,那么您很可能将其设置为签名/验证它.在这种情况下,解密失败与验证失败是一样的,所以攻击者再也无法知道.
> Auth票也会签名,因此它就像查看状态一样
>会话cookie未加密,因此无关紧要

我发布了on my blog攻击到目前为止如何能够伪造身份验证cookie.

Isn’t it just as easy for the script/application to execute this attack and not specifically care whether or not it gets a http status code and more on the outcome? Ie doing this 4000 times you get redirected to an error page where on 4001 you stay on the same page because it didn’t invalidate the padding?

如上所述,您需要找到一种行为方式的机制,即解密的垃圾停留在同一页面上,而不是抛出异常/从而使您进入相同的错误页面.

Either Fail,they’re on a page and the viewstate does not contain their data. No matter what you do here there is no way to remove the fail case because the page just will never contain their inserted data unless they successfully cracked the key. This is why I can’t justify the custom errors usage having ANY EFFECT AT ALL.

Or Pass,they’re on a page and the viewstate contains their inserted data.

阅读我上面提到的关于视图状态的内容.另请注意,在获得解密功能后,可以获得更准确地重新加密的能力.也就是说,如上所述,默认情况下视图状态不是那种方式,而且当它通常伴随着签名/验证时.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读