CSRF跨站请求伪造漏洞分析与防御

2022-04-17 02:00:43
目录
CSRF漏洞原理漏洞危害防御绕过漏洞利用防御措施总结

CSRF

现在的网站都有利用CSRF令牌来防止CSRF,就是在请求包的字段加一个csrf的值,防止csrf,要想利用该漏洞,要和xss组合起来,利用xss获得该csrf值,在构造的请求中将csrf值加进去,就可以绕过csrf防御,利用该漏洞。

该漏洞与xss的区别:xss是通过执行恶意脚本,获取到用户的cookie等信息,再利用cookie等信息进行绕过登录限制,做一些用户可以做的事。

而csrf是伪造请求,让用户自己执行攻击者伪造的请求,这个过http://www.easck.com程是用户自己完成的。

漏洞原理

跨站请求伪造,攻击者伪造一个请求(通常是一个恶意链接)发送给用户,用户在登录的情况下点击该链接,服务器就会以用户的身份去执行攻击者伪造的这个请求,从而造成攻击。

漏洞危害

1. 修改用户信息:修改邮箱,更改密码、转账等。

如果修改的信息是GET方式提交的,我们就直接将修改信息的url发送给用户,用户登录情况下点击该链接,就把他的信息修改为我们url中的值了。

如果是POST传参,那我们就需要搭建一个公网服务器,伪造一个自动提交的修改用户信息的表单,同样发送给用户一个链接,让用户在登录存在漏洞网站的情况下访问我们构造的这个表单,从而修改用户信息。

防御绕过

1. 切换请求方式绕过CSRF令牌验证:

某些应用程序只在POST请求中验证CSRF令牌,所以我们将请求方法改为GET,就可以绕过CSRF令牌验证。

抓包,利用burp的 Change request method,来将请求改为GET方式。

在服务端应用程序生成,并包含在后续的http请求中,后面所有的http请求都需要包含该令牌,如果令牌丢失或者无效,服务端会拒绝该请求。

总结