攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等

1.利用

将构造好的POC(例如一张图片,点击后直接跳转到支付),利用你目前的登录状态(你的账户余额),完成恶意操作(完成支付)

以下xxx.com可以改为恶意网站

GET方式构造

例如:

1
<img src='xxx.com'>

点击图片则跳转

也可以用其他标签达到跳转效果,例如<a>``<iframe>

POST方式构造

1
2
3
4
5
<form actiom='xxx.com' method='post'>
<input type='hidden' name='变量1' value='变量值1'>
<input type='hidden' name='变量1' value='变量值1'>
...
<script>doucment.forms[0].submit();</script><!--自动提交表单>

也可以利用bp的repeater模块中自带的CSRF POC来构造

2.漏洞探测

检测是否具有防止CSRF的措施

  1. http Referer头

  2. 是否设置Token

  3. HTTP自定义头

  4. 二次验证

对于防御,可以也根据这几条下手