如何验证客户端是否启用了ViewStateUserKey?

时间:2014-09-18 17:09:15

标签: asp.net antiforgerytoken

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

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

Can I see the ViewStateUserKey in html source?

2 个答案:

答案 0 :(得分:3)

没有办法推断出这个客户端。检查服务器上的源代码是唯一可靠的方法。但是,您可以尝试在自己的应用程序中取消CSRF攻击,因为缺少直肠检查测试,即在服务器上正确检查VSUK。

答案 1 :(得分:0)

尝试使用此问题中提到的答案: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>