WEB攻防_CSRF

概述

跨站请求伪造,冒用Cookie中的信息,发起请求攻击。

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

攻击简单流程

也就是我们在网站上进行一些操作也就是发送一些数据包,当我们访问一些恶意网站时,就有可能他们会利用我们在一些网站的登陆凭证来在那些网站上进行操作,也就是用我们的身份来操作其他网站

所以要实现CSRF攻击,我们就需要以下条件:

同源检测

有CSRF的防护策略是同源检测,也就是网站会检测发送的包是否是自身网站所发送的

这种检测一般有两种逻辑

全部对比也就是refer头的信息必须与预期的完全一致
这种防护策略应该没法绕过,想要利用的话要配合XSS或者文件上传,
也就是上传一个恶意代码,这个代码可以执行CSRF,这样的话接收到的就是同源的

而比配对比就是检测refer头里面有没有 预期的关键字,如果有就通过,这样的话其实可以绕过
比如要求必须要有关键字kongyu,这样的话可以我们创建一个文件夹,在这个文件夹中放入我们的攻击代码即可,这样我们发送给要攻击网站的refer信息就是
http://<ip>/kongyu/这样就用kongyu关键字了,
但是要注意有一些关键字可能是这种格式http://.../这样的话就没法用上面的方法,因为文件夹没法以这种内容来命名
条件:点击触发

也有可能有这么一个绕过方法,也就是将发送的头中refer设置为空,这种绕过逻辑源自于网站本身的代码逻辑漏洞
因为从浏览器本身去访问是没有来源的,所以有些网站会将没有来源的访问也标识为合法访问
`