CSRF的最基本原理:利用用户保留的cookie和自动登录等特征,攻击者构造一个上传恶意内容的网站,再使用各种手段让用户打开这个链接自动登录然后上传恶意信息。
我们返回到恶意网站页面: http://10.1.1.23/csrf-get-attacker/attacker.html
鼠标右键,点击弹出菜单中的“查看源代码选项”,查看恶意网站代码,如下图所示:
从代码中可以看到,恶意网站在页面中植入了一个标签,由于其通过CSS样式设置为隐藏,所以我们在访问过程中并没有看到实际的标签内容。这个标签通过设置src地址,向留言板网站发送了一条恶意留言请求。由于浏览器保存了我们在留言板网站的身份标识Cookie,并在发送请求时自动将Cookie附带上,所以恶意网站就成功盗用了我们的身份,完成了一次恶意留言行为,这就是基于GET请求的CSRF攻击全过程。
返回到另一恶意网站页面: http://10.1.1.23/csrf-post-attacker/attacker.html
鼠标右键,点击弹出菜单中的“查看源代码选项”,查看恶意网站代码,如下图所示:
从代码中可以看到,恶意网站在页面中植入了一个form表单,这个表单的action设置为留言网站地址。同时植入的还有一段Javascript代码,该段代码功能是自动提交form表单数据。这样,当用户访问到该恶意网站时,实际上就通过Post方法向留言板发出了一条恶意留言请求。