跨站请求伪造概述
- “假传圣旨”
- “Client-Side”
- hacker 用户可以伪造admin 用户的转账请求,强制admin 用户,转账给任意用户。
CSRF原理
基本概念
跨站请求伪造(Cross Site Request Forgery, CSRF),是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Web 应用程序 上执行非本意操作的攻击,攻击的重点在于更改状态的请求,而不是盗取数据,因为攻击者无法查看伪造请求的响应。
借助于社工的一些帮助,例如,通过电子邮件或聊天发送链接,攻击者可以诱骗用户执行攻击者选择的操作。如果受害者是普通用户,则成功的 CSRF 攻击可以强制用户执行更改状态的请求,例如转移资金、修改密码等操作。如果受害者是管理账户,CSRF 攻击会危及整个Web 应用程序。
关键点
- 受害者没有退出登录,受害者保持身份认证。
- CSRF 继承了受害者的身份和特权,代表受害者执行非本意的、恶意的操作。
- CSRF 会借用浏览器中与站点关联的所有身份凭据,例如用户的会话Cookie,IP 地址,Windows 域凭据等。
目标
CSRF 的目标是更改用户账户的状态,攻击者利用CSRF 发送的请求都是更改状态的请求,比如,转账、更改密码,购买商品等等。
攻击过程
- 用户输入账号信息请求登录A网站。
- A网站验证用户信息,通过验证后返回给用户一个cookie
- 在未退出网站A之前,在同一浏览器中请求了黑客构造的恶意网站B
- B网站收到用户请求后返回攻击性代码,构造访问A网站的语句
- 浏览器收到攻击性代码后,在用户不知情的情况下携带cookie信息请求了A网站。此时A网站不知道这是由B发起的。那么这时黑客就可以进行一下骚操作了!
两个条件:
a 用户访问站点A并产生了cookie
b 用户没有退出A同时访问了B