我正在使用Burp Suite在一个站点上进行一些安全测试,我注意到当它检测到 ViewState 时,它会自动告诉你它是否启用了 MAC。
我很好奇是否有人知道一种编程方式来确定 MAC 是否启用,如果您正在爬取站点而不实际尝试修改 ViewState,提交它并查看是否有任何问题?
据我所知,Burp Suite 只是通过查看请求(而不是修改/提交)来执行此操作。
我正在使用Burp Suite在一个站点上进行一些安全测试,我注意到当它检测到 ViewState 时,它会自动告诉你它是否启用了 MAC。
我很好奇是否有人知道一种编程方式来确定 MAC 是否启用,如果您正在爬取站点而不实际尝试修改 ViewState,提交它并查看是否有任何问题?
据我所知,Burp Suite 只是通过查看请求(而不是修改/提交)来执行此操作。
ViewStates 基本上是 BASE64 编码的字符串。因此,您可以尝试使用 BASE64 解码器对其进行解码。如果它被加密,你会得到一些不可读的二进制内容。如果不使用加密,您将能够看到内容。例如Fiddler2可以帮助您在浏览器中解码 ViewStates。
现在还可以选择使用 MAC:
如果视图状态启用了其 MAC,则该系统的安全性在于密钥值的保密性。此值始终存储在服务器上,无论是在内存中还是在配置文件中(稍后会详细介绍)——它永远不会写入页面。在不知道密钥的情况下,攻击者将无法计算有效的视图状态哈希。
来自MSDN“查看状态安全”。
您可以通过解码 VIEWSTATE(如果未加密)来检查这一点,并验证 ViewState 结构的末尾是否存在 20 字节哈希。