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

- 用户首先登录网站A,生成可以对网站A进行操作的cookie信息等令牌身份验证等
- 在未退出网站A时,恶意网站B通过诱骗等方式使得用户访问网站B
- 当用户访问网站B的同时,网站B发送对网站A进行相关操作的数据包。即利用用户的身份向网站A进行相关操作。
- 此时网站A接收到网站B发送过来的数据包,并没有对该数据包进行额外足够安全的检验。以为是用户所进行的操作。
漏洞利用
利用该漏洞一般需要熟知目标网站的请求数据包,并针对数据包生成可以发送该数据包格式或内容的网页。
无防护利用
利用条件:
1、需要请求伪造数据包
2、无过滤防护 有过滤防护能绕过
3、受害者需要触发(诱惑)
在实战中,一般为得到目标网站的源码后,进行复现,然后抓取攻击数据包并对其进行修改,然后写出或生成可以提交该数据包的网页。
生成网页方法:BurpSuite->Engagement tools->Generate CSRF Poc
有防护绕过
- 同源检测(referer)
http请求头中Referer的含义和作用

只检测referer字段中是否具有xx.xx.xx.xx网址
- 绕过方式:
可以采用将poc放入名为该关键字的文件夹下,当用户点击进行跳转时,referer字段中将带有关键字,注意必须是点击过来,如果访问方式是直接访问,那么referer中将不带目录名
- 绕过方式:
对referer字段全部检测
- 绕过方式:
配合XSS或文件上传,将触发数据包的JS文件插入目标网站中,或将触发数据包的html文件进行上传
- 绕过方式:
逻辑不严谨
- 绕过方式:
将referer字段进行置空或删除 - 在站点很多功能需要实现的时候,并没有需要检测referer来源头的必要,开发人员在开发过程中并没有将关键功能进行严格referer检测,便造成了referer头可有可无。
- 绕过方式:
- CSRFtoken检测
CSRFtoken在个人理解来说就是当浏览器执行某些需要防止CSRF攻击行为时,在向服务器发送请求的同时会向服务器发送生成CSRFtoken的请求包,服务器生成一串不规则的CSRFtoken令牌交给浏览器,浏览器在执行该功能时将CSRFtoken令牌夹带在数据包中向服务器发送执行该功能的数据包,服务器收到数据包后检测CSRFtoken值正确后再进行相关操作。如此循环便保证数据包的唯一性,防止CSRF攻击

- 绕过方式
- 将CSRFtoken值进行复用(代码逻辑不严谨)
- 将CSRFtoken项进行删除(代码逻辑不严谨)
- 将CSRFtoken项进行置空(代码逻辑不严谨)
以上内容仅作参考学习,如有瑕疵或错误,希望各位师傅们斧正,感谢阅读。
Web通用漏洞--CSRF的更多相关文章
- 常见Web安全漏洞--------CSRF
1,CSRF (Cross Site Request Forgery, 跨站域请求伪造),也可以说是模拟请求. 2,黑客获取到了token 令牌,发送恶意模拟请求,攻击网站,防御方法可以参考api 接 ...
- 程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)
https://blog.csdn.net/ChenRui_yz/article/details/86489067 随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面 ...
- WEB漏洞——CSRF、SSRF
CSRF漏洞 CSRF( Cross- site request forgery,跨站请求伪造)也被称为 One Click Attack或者 Session Riding,通常缩写为CSRF或者XS ...
- [web安全]Web应用漏洞攻击分析与防范
网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...
- Web安全漏洞深入分析及其安全编码
摘自:http://blog.nsfocus.net/web-vulnerability-analysis-coding-security/ 超全Web漏洞详解及其对应的安全编码规则,包括:SQL注入 ...
- Web安全之CSRF攻击的防御措施
Web安全之CSRF攻击的防御措施 CSRF是什么? Cross Site Request Forgery,中文是:跨站点请求伪造. CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击 ...
- web安全漏洞种类
(参考知道创宇) SQL注入: SQL注入(SQL Injection),是一个常见的发生于应用程序和数据库之间的web安全漏洞,由于在开发过程中的设计不当导致程序中忽略了检查,没有有效的过滤用户的输 ...
- 基于 burpsuite的web逻辑漏洞插件开发(来自JSRC安全小课堂,柏山师傅)
基于 burpsuite的web逻辑漏洞插件开发 BurpSuite 提供了插件开发接口,支持Java.Python.Ruby语言的扩展.虽然 BApp Store 上面已经提供了很多插件,其中也不乏 ...
- web安全漏洞
1.什么是Web漏洞 WEB漏洞通常是指网站程序上的漏洞,可能是由于代码编写者在编写代码时考虑不周全等原因而造成的漏洞.如果网站存在WEB漏洞并被黑客攻击者利用,攻击者可以轻易控制整个网站,并可进一步 ...
- Web安全之CSRF(跨站请求伪造)
CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为"CSRF",在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺 ...
随机推荐
- 2022-03-29:整个二维平面算是一张地图,给定[x,y],表示你站在x行y列, 你可以选择面朝的任何方向, 给定一个正数值angle,表示你视野的角度为, 这个角度内你可以看无穷远,这个角度外你
2022-03-29:整个二维平面算是一张地图,给定[x,y],表示你站在x行y列, 你可以选择面朝的任何方向, 给定一个正数值angle,表示你视野的角度为, 这个角度内你可以看无穷远,这个角度外你 ...
- 【GiraKoo】Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
[解决]Could NOT find PkgConfig (missing PKG_CONFIG_EXECUTABLE) 环境 Ubuntu 22.04 现象 在编写CMakeLists.txt时,调 ...
- 选择结构do...while语句
// do..while语句 #include<stdio.h> int main() { int a = 0; do { a++; printf("HelloWorld\n&q ...
- AcWing 278. 数字组合
给定 N 个正整数 A1,A2,-,AN,从中选出若干个数,使它们的和为 M,求有多少种选择方案. 输入格式 第一行包含两个整数 N 和 M. 第二行包含 N 个整数,表示 A1,A2,-,AN. 输 ...
- cv学习总结(11.6-11.13)
两层全连接神经网络的内容要比想象中的多很多,代码量也很多,在cs231n只用了15分钟讲解的东西我用了一周半的时间才完全的消化理解,这周终于完成了全连接神经网络博客的书写https://www.cnb ...
- 驱动开发:内核扫描SSDT挂钩状态
在笔者上一篇文章<驱动开发:内核实现SSDT挂钩与摘钩>中介绍了如何对SSDT函数进行Hook挂钩与摘钩的,本章将继续实现一个新功能,如何检测SSDT函数是否挂钩,要实现检测挂钩状态有两种 ...
- 前端学习C语言 - 第二篇(常量、运算符、控制和循环)
常量.运算符.控制和循环 前文我们写了第一个 c 语言程序,了解了基本的数据类型.本篇将继续学习:常量.运算符.控制语句和循环语句. 常量 #define 常量 #define是用来定义常量和宏的预处 ...
- ARC114F Permutation Division
题意 给定一个 \(1 \sim N\) 的排列,Alice 把它划分成 \(k\) 段,Bob 把这 \(k\) 段任意排列.Alice 想让字典序最小,Bob 想让字典序最大.请问最后的排列. 数 ...
- docker-compose多服务器部署ELK
多服务器构建ELK es使用1主2从,logstash转发,kibana展现,本文ELK版本使用7.16.1 如果单机测试,请查看docker-compose单服务器部署ELK es-master:1 ...
- 2. 搭建Mybatis
确认开发环境 MySQL不同版本的注意事项 1.驱动类driver-class-name MySQL 5版本使用jdbc5驱动,驱动类使用:com.mysql.jdbc.Driver MySQL 8 ...