【问题标题】:How do you verify ViewStateUserKey is enabled on the clientside?您如何验证在客户端启用 ViewStateUserKey?
【发布时间】:2014-11-13 03:23:48
【问题描述】:

我正在查看一个用 .NET 编写的 Web 应用程序,我正在通过 Burp Suite 进行代理,但无法判断它是否完全免受 CSRF 攻击。我知道如果在源代码中设置了 ViewStateMac 和 ViewStateUserKey,应用程序应该得到很好的保护。但是,如果我无法访问源代码,我将如何识别它?

这个以前的 StackOverflow 问题有点问了同样的问题,但并没有完全解决我的问题。 (我没有足够的声望点来在答案的 cmets 中添加这个问题):

Can I see the ViewStateUserKey in html source?

【问题讨论】:

    标签: asp.net antiforgerytoken


    【解决方案1】:

    没有办法推断出这个客户端。检查服务器上的源代码是唯一确定的方法。但是,您可以尝试对您自己的应用程序发起 CSRF 攻击,作为在服务器上正确检查 VSUK 的简单检查测试。

    【讨论】:

    • 感谢李维斯的回复。您可以猜到,我正在对应用程序进行渗透测试,但不确定是否可以声明它不受 CSRF 影响,但我从参考帖子中知道您的 cmets 是黄金。
    【解决方案2】:

    尝试使用此问题中提到的答案:How to demonstrate a CSRF attack 特别是这个答案:https://stackoverflow.com/a/6812942/7231971

    答案建议使用 post 方法创建一个表单,该方法将在打开页面时由客户端(使用您的站点的人)浏览器执行。例如:

    <form name="csrf_form" action="http://VULNERABLE_APP/csrf.php" method="POST">
            <input type="hidden" name="csrf_param" value="POST_ATTACK">
    </form>
    <script type="text/javascript">document.csrf_form.submit();</script>
    

    【讨论】:

    • 链接很有用,但如果它们死了,你的答案会不会,因此请尝试从链接和链接中发布关键点。干杯
    • @d219 我从我发布的链接中添加了相关信息。
    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2012-05-26
    • 1970-01-01
    • 2016-03-15
    相关资源
    最近更新 更多