csrf漏洞简介及实战演示

简介

CSRF(Cross-site request forgery)中文名叫跨站请求伪造。csrf不攻击网站服务器,而是冒充用户在站内的正常操作。攻击者盗用被攻击者的身份,以被攻击者的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以被攻击者的名义发送邮件、发消息,盗取账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

原理

csrf漏洞简介及实战演示

实战演示

靶场:dvwa
环境:Windows 10
1、修改密码,并用burpsuite拦截请求包
csrf漏洞简介及实战演示
2、用burpsuite生成poc
csrf漏洞简介及实战演示

3、保存poc为网页,并生成连接
csrf漏洞简介及实战演示
4、模拟被攻击者访问该网页,并点击按钮
csrf漏洞简介及实战演示
被攻击者一旦点击按钮,他自身的账号密码就会被修改成攻击者设计的密码

防御方法

(1) 验证 HTTP Referer 字段(防御效果不好,容易被绕过)
(2) 验证token(token也叫令牌,防御效果相对较好)
(3) 验证码验证(防御效果好,但会影响用户体验)

总结

CSRF也可以说是劫持用户去进行一些请求(如改密码、添加用户、转账等),在挖洞过程中,csrf一般用于越权。在一些存在权限控制的地方(如管理后台、会员中心、论坛帖子以及交易管理等),我们可以抓取http请求包查看,如果没有token,去掉referer在次发送请求(或者提交空referer),如果返回数据一样,说明可能存在csrf漏洞。然后编写poc或者burpsuite生产,进一步加以验证,能成功执行相应的操作,即可证明漏洞存在。