【问题标题】:How to determine if ViewState has MAC enabled when crawling a page?爬取页面时如何判断ViewState是否启用了MAC?
【发布时间】:2013-07-24 18:03:54
【问题描述】:

我正在使用Burp Suite 对站点进行一些安全测试,我注意到当它检测到 ViewState 时,它​​会自动告诉您它是否启用了 MAC。

我很好奇是否有人知道一种编程方式来确定 MAC 是否已启用,如果您正在爬取网站而不实际尝试修改 ViewState,提交它并查看是否有任何问题?

据我所知,Burp Suite 只是通过查看请求(而不是修改/提交)来执行此操作。

【问题讨论】:

标签: asp.net security viewstate


【解决方案1】:

ViewState 基本上是 BASE64 编码的字符串。因此,您可以尝试使用 BASE64 解码器对其进行解码。如果它被加密,你会得到一些不可读的二进制内容。如果不使用加密,您将能够看到内容。例如Fiddler2 可以帮助您在浏览器中解码 ViewStates。

现在还可以选择使用 MAC:

如果视图状态启用了 MAC,那么这里的安全性 系统的关键在于秘钥值的保密。这个值是 始终存储在服务器上,无论是在内存中还是在配置中 文件(稍后会详细介绍)——它永远不会写入页面。没有 知道密钥,攻击者就无法计算出 有效的视图状态哈希。

来自MSDN "View State Security"

您可以通过解码 VIEWSTATE(如果未加密)来检查这一点,并验证 ViewState 结构的末尾是否存在 20 字节哈希。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-23
    • 2013-02-23
    • 2021-10-22
    • 2010-10-19
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多