如何确定ViewState在抓取页面时是否启用了MAC?

时间:2013-07-24 18:03:55

标签: asp.net security viewstate

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

我很好奇是否有人知道如果您在没有实际尝试修改ViewState的情况下抓取网站时确定MAC是否已启用的编程方式,请提交它并查看是否有任何事情发生?

据我所知,Burp Suite只是通过查看请求(而不是修改/提交)来做到这一点。

1 个答案:

答案 0 :(得分:3)

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

现在还可以选择使用MAC:

  

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

来自MSDN "View State Security"

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