首先介绍 CSRF 的攻击原理,我们才能更好进行攻击。
CSRF(Cross-site requestforgery 跨站请求伪造,原理攻击者通过伪装成受信任用户向目标服务发送请求实现攻击。
生成 cookie:用户 A 通过输入账号/密码登录网站 web1,此时浏览器将登录状态记录到本地 cookie 中;
获取 cookie:攻击中构建一条恶意网站 web2 的链接,受害者打开恶意链接后,将把本地保存的 cookie 信息送到恶意网站 web2;
伪造攻击:网站 web2 通过收到的用户 A 的 cookie 值,向网站 web1 发起恶意请求,例如转账支付,获取身份信息等目的。
使用到的工具:fiddler 抓包工具,Jmeter
登录网站,通过 fiddler 抓包工具,获取登录成功后的请求头中的 cookie 值。
大家肯定奇怪,明明访问首页的时候就已经生成了 cookie 值,为什么还登录呢?
虽然 cookie 值在打开首页时就已经生成,但此时的值未与具体用户关联,最多为游客的 cookie 值,因很多权限登录成功后才能访问,只有登录成功后才会将 cookie 值与用户进行关联。
1)在 Jmeter 中添加 “HTTP Cookie 管理器”;
填写 cookie 值,一般是 JSESSIONID 和域名;
2)添加攻击请求
添加进行攻击的目标请求地址和请求参数;
3)发起攻击
执行请求,查看结果。
成功实施攻击。
至于如何去修复这个漏洞,只能有劳开发大伽们了。