逻辑漏洞挖掘之CSRF漏洞原理分析及实战演练
一、前言
2月份的1.2亿条用户地址信息泄露再次给各大公司敲响了警钟,数据安全的重要性愈加凸显,这也更加坚定了我们推行安全测试常态化的决心。随着测试组安全测试常态化的推进,有更多的同事对逻辑漏洞产生了兴趣,本系列文章旨在揭秘逻辑漏洞的范围、原理及预防措施,逐步提升大家的安全意识。第二篇选取了广为熟知的CSRF漏洞进行介绍。
二、CSRF漏洞介绍
1、CSRF漏洞的定义
跨站请求伪造(Cross-site request forgery,简称CSRF),攻击者利用受害者身份发起了HTTP请求,导致受害者在不知情的情况下进行了业务操作,如修改资料、提交订单、发布留言或评论等
2、CSRF主要攻击形式
① GET类型的CSRF
这类攻击非常简单,只需要一个HTTP请求:
② POST类型的CSRF
这种类型的 CSRF 利用起来通常使用的是一个自动提交的表单,访问问该页面后,表单会自动提交,相当于模拟用户完成了一次 POST 操作。可见这种类型的 CSRF 与第一种一样,都是模拟请求,所以后端接口也不能将安全寄托在仅允许 POST 请求上。
③ 链接类型的 CSRF
链接类型的CSRF并不常见,比起其他两种用户打开页面就中招的情况,这种类型需要用户点击链接才会触发,但本质上与前两种一样。这种类型通常是在论坛发布的图片中嵌入恶意链接,或者以广告的形式诱导用户中招,攻击者通常会以比较夸张的词语诱骗用户点击,例如:<a href=" taget="_blank"> 由于之前用户登录了信任的网站A,并且保存登录状态,只要用户主动访问这个页面,则表示攻击成功。
通过请求“http://1.116.45.67:82/vul/csrf/csrfget/csrf_get_edit.php?sex=%E5%A5%B3&phonenum=19898980000&add=%E5%8C%97%E4%BA%AC&email=555%40qq.com&submit=submit”即可修改用户邮箱
2、POST类型的CSRF

构造form表单类型的poc,请求addOrEdit接口新增字典成功。
五、CSRF漏洞防范意见
1、验证请求的Referer值
如果Referer是以⾃⼰的⽹站开头的域名,则说明该请求来⾃⽹站⾃⼰,是合法的。如果Referer是其他⽹站域名或空⽩,就有可能是CSRF攻击,那么服务器应拒绝该请求,但是此⽅法存在被绕过的可能。
2、请求中添加token并验证
CSRF攻击之所以能够成功,是因为攻击者可以伪造⽤户的请求,由此,抵御CSRF攻击的关键在于:在请求中放⼊攻击者不能伪造的信息。例如可以在HTTP请求中以参数的形式加⼊⼀个随机产⽣的token,并在服务器端验证token,如果请求中没有token或者token的内容不正确,则认为该请求可能是CSRF攻击从⽽拒绝该请求。
六、CSRF常用构造内容
1、GET类型:

2、POST类型的CSRF
表单类型 POC构造:

JSON类型 POC构造:

作者:京东物流 范文君
来源:京东云开发者社区 自猿其说Tech 转载请注明来源
逻辑漏洞挖掘之CSRF漏洞原理分析及实战演练的更多相关文章
- 148.CSRF攻击原理分析、防御、装饰器、中间件、IFrame以及js实现csrf攻击
CSRF攻击概述: CSRF(Cross Site Request Forgery 跨站域请求伪造)是一种网站攻击的方式,它在2007年曾被列为互联网20大安全隐患之一.其他的安全隐患,比如SQL脚本 ...
- yii2的csrf验证原理分析及token缓存解决方案
本文主要分三个部分,首先简单介绍csrf,接着对照源码重点分析一下yii框架的验证原理,最后针对页面缓存导致的token被缓存提出一种可行的方案.涉及的知识点会作为附录附于文末. 1.CSRF描述 C ...
- yii2 csrf验证原理分析
知识补充 因为yii2 csrf的验证的加解密 涉及到异或运算 所以需要先补充php里字符串异或运算的相关知识,不需要的可以跳过 ^异或运算不一样返回1 否者返回 0在PHP语言中,经常用来做加密的运 ...
- CSRF漏洞原理说明与利用方法
翻译者:Fireweed 原文链接:http://seclab.stanford.edu/websec/ 一 .什么是CSRF Cross-Site Request Forgery(CSRF),中文一 ...
- SRC漏洞挖掘
SRC目标搜集 文章类的平台 https://www.anquanke.com/src 百度搜索 首先得知道SRC厂商的关键字,利用脚本搜集一波. 比如[应急响应中心]就可以作为一个关键字.通过搜索引 ...
- 从Java的角度修复CSRF漏洞
漏洞挖掘中,说实话挖过最多的漏洞就属CSRF漏洞了,提交CSRF漏洞很多次,绕过CSRF防御进行攻击也有很多次.CSRF漏洞是一个很容易引发的问题,今天我从Java的角度来说下这个安全漏洞的修复方案. ...
- ref:【干货分享】PHP漏洞挖掘——进阶篇
ref:http://blog.nsfocus.net/php-vulnerability-mining/ [干货分享]PHP漏洞挖掘——进阶篇 王陶然 从常见的PHP风险点告诉你如何进行PH ...
- CSRF漏洞详细说明
CSRF漏洞详细说明 通常情况下,有三种方法被广泛用来防御CSRF攻击:验证token,验证HTTP请求的Referer,还有验证XMLHttpRequests里的自定义header.鉴于种种原因,这 ...
- 基础知识:CSRF漏洞
CSRF漏洞概述 CSRF漏洞是跨站请求伪造攻击,能够对攻击用户的增.删.改,不能攻击查.为什么呢?根据其原理,攻击者是发一个链接给用户,用户点击这个链接而执行危险的操作,信息并不会返回到攻击者的电脑 ...
- Heartbleed心脏出血漏洞原理分析
Heartbleed心脏出血漏洞原理分析 2017年01月14日 18:14:25 阅读数:2718 1. 概述 OpenSSL在实现TLS和DTLS的心跳处理逻辑时,存在编码缺陷.OpenSS ...
随机推荐
- 【转载】老男孩读PCIe
目录 老男孩读PCIe之一:从PCIe速度说起 老男孩读PCIe之二:PCIe拓扑结构 老男孩读PCIe之三:PCIe分层结构 老男孩读PCIe之四:TLP类型 老男孩读PCIe之五:TLP结构 老男 ...
- Centos7中Oracle占用CPU过高(解决方案)
Centos7中Oracle占用CPU过高(解决方案) 前言: 99%的问题几乎都是SQL的问题,一般SQL可能会出现以下几种情况: 相关SQL搜索条件没有加索引 索引失效 联合查询过多 数据量过大 ...
- OlllyDbg调试器和IDA调试器
OllyDbg调试器 OllyDbg称为Ring3级的首选工具.可以识别数千个被和Windows频繁使用的函数,并能将其注释出来.它会自动分析函数过程.循环语句等 OllyDbg主界面 快捷键 Add ...
- C# LinearGradientBrush使用报错
今天在学习C#时使用 LinearGradientBrush 属性发生了如上错误,发现引用其时并没有提示 在添加了此命名空间后恢复正常
- Git练习网址
爲了方便学习git指令,让新手们更容易地理解,所以推荐一些git练习和博文网址 推荐的网址如下 网址一:Learn Git Branching! https://learngitbranching.j ...
- UI获取元素的几种方式
通过浏览器驱动获取页面元素的8种方式. 定位方法: 通过webdriver对象的find_element方法 通过 id获取元素 el = driver.find_element(By.ID,'id' ...
- TCP的可靠性之道:确认重传和流量控制
TCP 全称为 Transmission Control Protocol(传输控制协议),是一种面向连接的.可靠的.基于字节流的传输层通信协议,其中可靠性是相对于其他传输协议的优势点.TCP 为了确 ...
- 论文解读(IW-Fit)《Better Fine-Tuning via Instance Weighting for Text Classification》
Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 论文信息 论文标题:Better Fine-Tuning via Instance Weighting for Text Cl ...
- What...MiniGPT-4居然开源了,提前感受 GPT-4 的图像对话能力!
说在前面的话: 一个月前,OpenAI向外界展示了GPT-4如何通过手绘草图直接生成网站,令当时的观众瞠目结舌. 在GPT-4发布会之后,相信大家对ChatGPT的对话能力已有所了解.圈内的朋友们应该 ...
- webgl 刷底色的基本步骤
1.在html中建立画布 <canvas id="canvas"><canvas> 2.在js中获取canvas画布 const canvas = docu ...

