盘点Web基础漏洞之CSRF的分类及防护

admin 2023年12月7日20:58:27评论13 views字数 2344阅读7分48秒阅读模式

盘点Web基础漏洞之CSRF的分类及防护



1、定义


csrf,cross script request forgery跨站请求伪造,攻击者借用用户的登录凭证,伪造请求提交到凭证对应网站,服务端未经过请求来源检查而默认信任,造成危害。

具体的,(1)受害者用户在登录目标网站A后,(2)攻击者基于社工手段使其在同主机同浏览器环境下,访问攻击者控制的网站B,(3)网站B的页面伪造请求通过该浏览器提交到网站A,同时携带对网站A保存在浏览器中的cookie登录凭证,(4)使得网站A的服务端接收后认为是用户自身发送,且是登录后经过身份验证,(5)从而造成危害,数据库增删改或文件操作,或数据查询返回。

登录后测试

cookie或session作为登录凭证

没有直接或间接的token,是否为一次性token不影响。(如果token服务端不检查,或者可以从其它处获取也不影响)

登录凭证cookie没有samesite属性设置,或者说设置的值为None

如果登录凭证cookie为secure属性,设置时要求必须在https协议中传送

未严格检查referer和origin字段


2、分类


2.1 html元素和css


html元素发出请求,或者css发出请求,默认自动携带目标域cookie,可以跨域

危害只能是提交请求后,服务端进行增删改操作,对于服务端返回,该类型csrf无法获取并转发给攻击者

常见的场景是

  • 取消或添加关注、收藏、点赞

  • 对账号信息进行编辑,比如修改昵称,修改登录或联系的手机号、邮箱,修改密码

  • 增删改评论、文章或其它数据

  • 上传图片或其它资源

一般是get请求,表单form可以是get或post请求

url、cookie或请求体部中携带参数,指向资源的编号。对于账号信息这类用户唯一的资源,可以不用资源编号

 1<link href="">
2<img src="">
3<img lowsrc="">
4<img dynsrc="">
5<meta http-equiv="refresh" content="0;url=">
6<iframe src="">
7<frame src="">
8<script src="">
9<bgsound src="">
10<embed src="">
11<video src="">
12<audio src="">
13<a href="">
14<table background="">
15...
16
17
18@import ""
19background:url("")
20...
21


还可以通过js动态生成的标签对象或css对象发起的get请,而发出post请求只能通过form提交方式。


2.2 json hijacking


json劫持 - 挖洞404 - 博客园 (cnblogs.com)


2.3 csrf与ajax


https://www.cnblogs.com/wd404/p/17481789.html


2.4 flash csrf


flash同样遵循同源策略,发起的csrf是基于actionscript脚本,可以

跨域获取隐私数据

跨域提交数据操作


3、防护


(1)refresh和origin

对于开发来说,这两个字段都可以作为csrf检查,选一即可。

而对测试来说,则需要对两个字段都同步进行测试,即hostname相同。

(2)token

使用token作为登录凭证,可以有效防止csrf。但需要注意,不要将token保存到cookie中,否则无效

(3)cookie的samesite

设置cookie的samesite属性不为None,而是Strict或Lax,可以有效防止csrf


4、发现


(1)登录凭证

存在cookie字段,且登录凭证cookie是必要的,samesite为None。没有直接或间接的token值

重放请求,根据响应字符长度测试是否包含一次性token

根据响应字符长度是否变化,二分法删除cookie测试。(一般,在同一站点下或同一目录下的必要cookie一致)

(2)referer和origin测试

样本,referer:http.//www.xx.com/xxx

测试origin: http://www.xx.com.abcxx.com

测试referer: http://www.xx.com.abcxx.com/xxx?referer=http.//www.xx.com/xxx

对于cors,主要测试响应头部是否包含access-control-allow-origin和Access-Control-Allow-Credentials字段,以及access-control-allow-origin是否包括origin的hostname字段

对于一般csrf,主要测试响应体部的字符长度是否发生变化。

当然,以上两者并不完全准确,进一步的需要由人工分析响应内容,尤其是对于增删改操作来说,响应并不能绝对反应是否执行成功


END
盘点Web基础漏洞之CSRF的分类及防护


本文作者:挖洞404

本文链接:https://www.cnblogs.com/wd404/p/17322472.html

版权声明:著作权归作者所有。如有侵权请联系删除


网安训练营

网络安全基础班、实战班线上全面开启,学网络安全技术、升职加薪……有兴趣的可以加入网安大家庭,一起学习、一起成长,考证书求职加分、升级加薪,有兴趣的可以咨询客服小姐姐哦!

盘点Web基础漏洞之CSRF的分类及防护

加QQ(1005989737)找小姐姐私聊哦



精选文章


环境搭建
Python
学员专辑
信息收集
CNVD
安全求职
渗透实战
CVE
高薪揭秘
渗透测试工具
网络安全行业
神秘大礼包
基础教程
我们贴心备至
用户答疑
 QQ在线客服
加入社群
QQ+微信等着你

盘点Web基础漏洞之CSRF的分类及防护


我就知道你“在看”


原文始发于微信公众号(开源聚合网络空间安全研究院):盘点Web基础漏洞之CSRF的分类及防护

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月7日20:58:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   盘点Web基础漏洞之CSRF的分类及防护https://cn-sec.com/archives/2277030.html

发表评论

匿名网友 填写信息