asp.net – 模拟CSRF攻击
我想模拟CSRF Attack来检查我的网站漏洞.我在我的asp.net webapplication上试了但是没能模拟.所以请帮我模拟CSRF攻击.我有一个test.aspx模拟.
<form name="form1" id="form1" runat="server" method="post" action="mysite.com"> <script type="text/javascript"> document.cookie[".ASPXAUTH"] = "someaspxauth"; document.cookie["ASP.NET_SessionId"] = "somesessionid"; document.form1.submit(); </script> </form> 我还缺少什么? 解决方法
要模拟CSRF,您不会在恶意代码中包含cookie或会话信息. CSRF的重点是执行的代码不知道您的会话或cookie信息.它只是假设浏览器将其包含在其对应用程序的请求中.
所以要测试一下,假设你有一个页面Transfer.aspx接受一个POST方法和参数txtFrom,txtTo和txtAmount,并带有一个按钮btnSubmit,你想尝试从帐户1转移到帐户2.你的恶意代码可以是这样的: <form action="http://www.mysite.com/Transfer.aspx" method="post"> <input type="hidden" name="txtFrom" value="1" /> <input type="hidden" name="txtTo" value="2" /> <input type="hidden" name="txtAmount" value="500" /> <input type="hidden" name="__VIEWSTATE" value="[PUT VIEWSTATE VALUE HERE]" /> <input type="hidden" name="__EVENTVALIDATION" value="[PUT EVENTVALIDATION VALUE HERE]" /> <input type="submit" name="btnSubmit" value="Go" /> </form> 您必须事先知道viewstate和eventvalidation值是什么,因此当您正确登录时,您需要从页面中复制该值.这假设您的viewstate是常量,无论用户或会话如何. 现在你有一个恶意页面.如果您在一个选项卡上登录,请在另一个选项卡中打开,然后提交,如果您容易受到攻击,则会进行转移.原因是发送了属于mysite.com的cookie,这意味着将使用在另一个选项卡上存活的会话. 要解决此问题,您需要在帖子中包含唯一的每会话值.通过使用ViewStateUserKey并将其设置为ASP.NET会话ID或其哈希,可以轻松完成此操作.这将使您的__VIEWSTATE值在每个会话中都是唯一的,这意味着您将不再容易受到攻击,因为没有人可以预测您的__VIEWSTATE值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 使用ASP .Net MVC4处理Web API中的集合内的集合
- 十七点学完安全知识超级详细了解进程和病毒知识 转载
- 为什么ASP.NET接受外部创建的会话标识符?
- Kestrel 是一个跨平台的适用于 ASP.NET Core 的 Web 服务器
- asp.net – ViewState vs cookies vs cashing vs sessions
- 如何在IdentityServer4中进行多步登录?
- asp.net – 有一个可靠的方法来防止在匿名用户可以投票的基
- asp.net scriptbundle多个include vs single include
- ASP.NET中的相对路径
- asp.net – 绕过表单身份验证自动重定向到登录,如何?