CSRF(CrossSiteRequestForgery,跨站请求伪造)是一种Web应用攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作,具有很大危害性。
CSRF关键点:
攻击目标:web应用的用户,不仅限于普通用户;中
必要条件:伪造的请求是用户在存在漏洞的服务器经过身份认证之后发起;
跨站:用扁访问政击者服务器,导致浏览器被控制向目标服务器发起操作谓求,用扁光法感知
伪造:在攻击者预先设定的页面中,包含执行特定操作行为所需要传递的参数。
身份认证之后:跨域的请求中会带上目标网站的cookie,在身份认证前目标用户并股有执行权限,需要在身份认证之后攻击才能成功。
注CSRFTOKEN参数既可能在报文头,也可能在报文参数中。
CSRF攻击步骤总结
1、寻找可能存在CSRF漏洞的请求
这类请求的特点如下:
没有设置CSRFtoken;
该请求执行特权/关键操作(如增删改,用户修改密码功能的表单,更新个人信息功能的表单,用户账号邮箱或手机绑定表单,支付,转账等);
应用程序仅依靠HTTPcookie来追踪会,请求中所有的参数均可以予预测;
攻击者可以确定执行操作。
2、POST转GET(可有可无)
表单通常使用GET和POST方式提交,但是web应用程序并不一定会分开处理GET
请求和POST请求,将POST请求转变为GET请求更加的方便构造Payload与同时也更加容易隐蔽。
3、构造payload
根据Web应用程序是否支持GET或者POST,构造特定的Payload。
Payload的构造方法有2种:
GET型payload:
imgsrc="