一、前言

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,并且保存登录状态,只要用户主动访问这个页面,则表示攻击成功。

3、CSRF漏洞危害

CSRF漏洞可能导致在用户不知情的情况下进行业务操作:

① 修改资料

② 提交订单

③ 发布留言或评论(关键操作、增删改)等

三、CSRF漏洞原理分析

四、CSRF漏洞实例分析

1、GET类型的CSRF

通过请求“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漏洞原理分析及实战演练的更多相关文章

  1. 148.CSRF攻击原理分析、防御、装饰器、中间件、IFrame以及js实现csrf攻击

    CSRF攻击概述: CSRF(Cross Site Request Forgery 跨站域请求伪造)是一种网站攻击的方式,它在2007年曾被列为互联网20大安全隐患之一.其他的安全隐患,比如SQL脚本 ...

  2. yii2的csrf验证原理分析及token缓存解决方案

    本文主要分三个部分,首先简单介绍csrf,接着对照源码重点分析一下yii框架的验证原理,最后针对页面缓存导致的token被缓存提出一种可行的方案.涉及的知识点会作为附录附于文末. 1.CSRF描述 C ...

  3. yii2 csrf验证原理分析

    知识补充 因为yii2 csrf的验证的加解密 涉及到异或运算 所以需要先补充php里字符串异或运算的相关知识,不需要的可以跳过 ^异或运算不一样返回1 否者返回 0在PHP语言中,经常用来做加密的运 ...

  4. CSRF漏洞原理说明与利用方法

    翻译者:Fireweed 原文链接:http://seclab.stanford.edu/websec/ 一 .什么是CSRF Cross-Site Request Forgery(CSRF),中文一 ...

  5. SRC漏洞挖掘

    SRC目标搜集 文章类的平台 https://www.anquanke.com/src 百度搜索 首先得知道SRC厂商的关键字,利用脚本搜集一波. 比如[应急响应中心]就可以作为一个关键字.通过搜索引 ...

  6. 从Java的角度修复CSRF漏洞

    漏洞挖掘中,说实话挖过最多的漏洞就属CSRF漏洞了,提交CSRF漏洞很多次,绕过CSRF防御进行攻击也有很多次.CSRF漏洞是一个很容易引发的问题,今天我从Java的角度来说下这个安全漏洞的修复方案. ...

  7. ref:【干货分享】PHP漏洞挖掘——进阶篇

    ref:http://blog.nsfocus.net/php-vulnerability-mining/ [干货分享]PHP漏洞挖掘——进阶篇 王陶然     从常见的PHP风险点告诉你如何进行PH ...

  8. CSRF漏洞详细说明

    CSRF漏洞详细说明 通常情况下,有三种方法被广泛用来防御CSRF攻击:验证token,验证HTTP请求的Referer,还有验证XMLHttpRequests里的自定义header.鉴于种种原因,这 ...

  9. 基础知识:CSRF漏洞

    CSRF漏洞概述 CSRF漏洞是跨站请求伪造攻击,能够对攻击用户的增.删.改,不能攻击查.为什么呢?根据其原理,攻击者是发一个链接给用户,用户点击这个链接而执行危险的操作,信息并不会返回到攻击者的电脑 ...

  10. Heartbleed心脏出血漏洞原理分析

    Heartbleed心脏出血漏洞原理分析 2017年01月14日 18:14:25 阅读数:2718 1. 概述    OpenSSL在实现TLS和DTLS的心跳处理逻辑时,存在编码缺陷.OpenSS ...

随机推荐

  1. SRS之StateThreads学习

    最近在看SRS的源码.SRS是基于协程开发的,底层使用了StateThreads.所以为了充分的理解SRS源码,需要先学习一下StateThreads.这里对StateThreads的学习做了一些总结 ...

  2. 公网环境部署zabbix5.0

    实验环境 虚拟机两台,一台公网地址为 1.1.1.1,部署 zabbix server,一台公网地址为 1.1.1.2,部署 zabbix proxy,系统为centos7.2. 1 zabbix s ...

  3. RAT蓝队自动化测试框架

    RAT蓝队自动化测试框架 介绍 RAT 是根据 MITRE ATT&CK 战术矩阵测试蓝队检测能力的脚本框架,由 python2.7 编写,共有 50 多种不同 ATT&CK 技术点和 ...

  4. upload-libs通关攻略

    pass01 第一关是一个前端验证,只要把Javascript禁止再上传就可以绕过了. 上传成功,到上传的地址查看结果如下: pass-02 这是一个MIME绕过,用bp抓包后修改文件类型即可将下面这 ...

  5. jQuery入口函数测试

    <script src="js/jquery-1.12.4.js"></script><script> window.onload = func ...

  6. Burnside 定理

    Burnside 定理 问题: 给定一个 \(n\) 个点,\(n\) 条边的环,有 \(m\) 种颜色,给每个顶点染色,问有多少种本质不同的染色方案,答案对 \(10^9+7\) 取模 注意本题的本 ...

  7. AWVS14破解docker一键安装

    先上个图 2021最新版 1.使用docker查看是否有awvs:    [root@hadoop-01 awvs13-linux]# docker search awvs    NAME       ...

  8. 部署ELK+filebeat收集nginx日志

    前言 简介 ELK(Elasticsearch.Logstash.Kibana)是开源的实时日志收集分析解决方案. Elasticsearch:开源搜索引擎,是一个基于Lucene.分布式.通过Res ...

  9. 《SQL与数据库基础》02. SQL-DDL

    目录 DDL 库管理 表管理 本文以 MySQL 为例 DDL 库管理 查看有哪些数据库: SHOW DATABASES; 使用某个数据库: USE 数据库名; 查看当前使用的数据库: SELECT ...

  10. SpringSecurity简明教程

    SpringSecurity主要实现UserDetailsService来验证登录的用户信息,和Security的配置类来对登录方式和资源进行限制. 案例包含利用数据库进行登录验证.URL访问限制.自 ...