我正在查看一个用.NET编写的Web应用程序,我通过Burp Suite代理,无法判断它是否完全受到CSRF攻击的保护。我知道如果在源代码中设置ViewStateMac和ViewStateUserKey,应该可以很好地保护应用程序。但是,如果我无法访问源代码,我将如何识别它?
之前的StackOverflow问题有点问同样的问题,但并没有完全解决我所问的问题。 (我没有足够的声望点在答案的评论中添加这个问题):
答案 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>