Web通用漏洞--CSRF

漏洞简介

CSRF(Cross Site Request Forgery, 跨站请求伪造/客户端请求伪造),即通过伪造访问数据包并制作成网页的形式,使受害者访问伪造网页,同时触发伪造的请求而达到攻击效果的一种手段。

  1. 用户首先登录网站A,生成可以对网站A进行操作的cookie信息等令牌身份验证等
  2. 在未退出网站A时,恶意网站B通过诱骗等方式使得用户访问网站B
  3. 当用户访问网站B的同时,网站B发送对网站A进行相关操作的数据包。即利用用户的身份向网站A进行相关操作。
  4. 此时网站A接收到网站B发送过来的数据包,并没有对该数据包进行额外足够安全的检验。以为是用户所进行的操作。

漏洞利用

利用该漏洞一般需要熟知目标网站的请求数据包,并针对数据包生成可以发送该数据包格式或内容的网页。

无防护利用

利用条件:

1、需要请求伪造数据包

2、无过滤防护 有过滤防护能绕过

3、受害者需要触发(诱惑)

在实战中,一般为得到目标网站的源码后,进行复现,然后抓取攻击数据包并对其进行修改,然后写出或生成可以提交该数据包的网页。

生成网页方法:BurpSuite->Engagement tools->Generate CSRF Poc

有防护绕过

  1. 同源检测(referer)

    http请求头中Referer的含义和作用

  • 只检测referer字段中是否具有xx.xx.xx.xx网址

    • 绕过方式:

      可以采用将poc放入名为该关键字的文件夹下,当用户点击进行跳转时,referer字段中将带有关键字,注意必须是点击过来,如果访问方式是直接访问,那么referer中将不带目录名
  • 对referer字段全部检测

    • 绕过方式:

      配合XSS或文件上传,将触发数据包的JS文件插入目标网站中,或将触发数据包的html文件进行上传
  • 逻辑不严谨

    • 绕过方式:

      将referer字段进行置空或删除
    • 在站点很多功能需要实现的时候,并没有需要检测referer来源头的必要,开发人员在开发过程中并没有将关键功能进行严格referer检测,便造成了referer头可有可无。
  1. CSRFtoken检测

    CSRFtoken在个人理解来说就是当浏览器执行某些需要防止CSRF攻击行为时,在向服务器发送请求的同时会向服务器发送生成CSRFtoken的请求包,服务器生成一串不规则的CSRFtoken令牌交给浏览器,浏览器在执行该功能时将CSRFtoken令牌夹带在数据包中向服务器发送执行该功能的数据包,服务器收到数据包后检测CSRFtoken值正确后再进行相关操作。如此循环便保证数据包的唯一性,防止CSRF攻击

  • 绕过方式

    • 将CSRFtoken值进行复用(代码逻辑不严谨)
    • 将CSRFtoken项进行删除(代码逻辑不严谨)
    • 将CSRFtoken项进行置空(代码逻辑不严谨)

以上内容仅作参考学习,如有瑕疵或错误,希望各位师傅们斧正,感谢阅读。

Web通用漏洞--CSRF的更多相关文章

  1. 常见Web安全漏洞--------CSRF

    1,CSRF (Cross Site Request Forgery, 跨站域请求伪造),也可以说是模拟请求. 2,黑客获取到了token 令牌,发送恶意模拟请求,攻击网站,防御方法可以参考api 接 ...

  2. 程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)

    https://blog.csdn.net/ChenRui_yz/article/details/86489067 随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面 ...

  3. WEB漏洞——CSRF、SSRF

    CSRF漏洞 CSRF( Cross- site request forgery,跨站请求伪造)也被称为 One Click Attack或者 Session Riding,通常缩写为CSRF或者XS ...

  4. [web安全]Web应用漏洞攻击分析与防范

    网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...

  5. Web安全漏洞深入分析及其安全编码

    摘自:http://blog.nsfocus.net/web-vulnerability-analysis-coding-security/ 超全Web漏洞详解及其对应的安全编码规则,包括:SQL注入 ...

  6. Web安全之CSRF攻击的防御措施

    Web安全之CSRF攻击的防御措施   CSRF是什么? Cross Site Request Forgery,中文是:跨站点请求伪造. CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击 ...

  7. web安全漏洞种类

    (参考知道创宇) SQL注入: SQL注入(SQL Injection),是一个常见的发生于应用程序和数据库之间的web安全漏洞,由于在开发过程中的设计不当导致程序中忽略了检查,没有有效的过滤用户的输 ...

  8. 基于 burpsuite的web逻辑漏洞插件开发(来自JSRC安全小课堂,柏山师傅)

    基于 burpsuite的web逻辑漏洞插件开发 BurpSuite 提供了插件开发接口,支持Java.Python.Ruby语言的扩展.虽然 BApp Store 上面已经提供了很多插件,其中也不乏 ...

  9. web安全漏洞

    1.什么是Web漏洞 WEB漏洞通常是指网站程序上的漏洞,可能是由于代码编写者在编写代码时考虑不周全等原因而造成的漏洞.如果网站存在WEB漏洞并被黑客攻击者利用,攻击者可以轻易控制整个网站,并可进一步 ...

  10. Web安全之CSRF(跨站请求伪造)

    CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为"CSRF",在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺 ...

随机推荐

  1. 2022-12-31:以下go语言代码输出什么?A:1 1;B:-1 1;C:-1 -1;D:编译错误。 package main import “fmt“ func main() { a

    2022-12-31:以下go语言代码输出什么?A:1 1:B:-1 1:C:-1 -1:D:编译错误. package main import "fmt" func main() ...

  2. vue全家桶进阶之路22:Vue CLI脚手架

    Vue CLI 是一个基于 Vue.js 的官方脚手架工具,它可以帮助我们快速创建和管理 Vue.js 项目,提供了一些工具和配置来帮助我们开发和调试 Vue.js 应用.一切框架都是为了将开发变得简 ...

  3. kali系统安装redis步骤

    环境: 攻击机:Kali  5.16.0-kali7-amd64    192.168.13.78 靶机:   Kali  5.16.0-kali7-amd64    192.168.13.94 安装 ...

  4. celery笔记一之celery介绍、启动和运行结果跟踪

    本文首发于公众号:Hunter后端 原文链接:celery笔记一之celery介绍.启动和运行结果跟踪 本篇笔记内容如下: celery 介绍 celery 准备 celery 启动和异步任务的运行 ...

  5. Go语言中的结构体:灵活性与可扩展性的重要角色

    1. 引言 结构体是Go语言中重要且灵活的概念之一.结构体的使用使得我们可以定义自己的数据类型,并将不同类型的字段组合在一起,实现更灵活的数据结构.本文旨在深入介绍Go语言中的结构体,揭示其重要性和灵 ...

  6. 现代C++学习指南-方向篇

    C++是一门有着四十年历史的语言,先后经历过四次版本大升级(诞生.98.11.17(20),14算小升级).每次升级都是很多问题和解决方案的取舍.了解这些历史,能更好地帮助我们理清语言的发展脉络.所以 ...

  7. TransformersandNLPforVideoUnderstanding

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 <Transformers and NLP for Video Understanding> 1 ...

  8. 让AI更好地服务于人类社会:如何确保其安全和透明度

    目录 让AI更好地服务于人类社会:如何确保其安全和透明度 随着人工智能技术的不断发展和应用,人们越来越关注其安全和透明度.安全和透明度是人工智能发展的重要保障,能够保护人工智能系统免受恶意攻击和滥用, ...

  9. k8s驱逐篇(7)-kube-controller-manager驱逐-taintManager源码分析

    概述 taintManager的主要功能为:当某个node被打上NoExecute污点后,其上面的pod如果不能容忍该污点,则taintManager将会驱逐这些pod,而新建的pod也需要容忍该污点 ...

  10. 深入浅出synchronized的原理与源码

    深入浅出synchronized的原理与源码 1.java对象头关于锁的标识 1.对象头 // 32 bits: // -------- // hash:25 ------------>| ag ...