一、CSRF漏洞概述

1.1 什么是CSRF漏洞

在CSRF的攻击场景中攻击者会伪造一个请求(整个请求一般是一个链接),然后七篇目标用户进行点击,用户一旦点击了这个请求,整个攻击也就完成了,所以CSRF攻击也被称为"one click"攻击。

1.2 如何确认一个web系统存在CSRF漏洞

(1)对目标网站增删改的地方进行标记,并观察其逻辑,判断你请求是否可以被伪造

    例如:修改管理员账号时,不需要验证旧密码,导致请求容易被伪造;

例如:对于敏感信息的修改并没有使用安全的token认证,导致请求容易被伪造。

(2)确认凭证的有效期(整个问题会提高CSRF被利用的概率)

    例如:虽然用户退出或者关闭了浏览器,但是cookie仍然有效,或者session并没有及时过期,导致CSRF攻击变的简单。

1.3 进行CSRF攻击需要具备什么条件?

例如我们要修改网站用户的信息。

(1)网站没有对个人信息修改的请求进行防CSRF处理

(2)用户本身已经登陆后台,并点击了攻击者的恶意链接

1.4 CSRF与XSS的区别

CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限;

XSS是直接盗取了用户的权限,然后实施破坏。

二、CSRF(get/post)实验演示和解析

2.1 GET方式

1、来到我们的pikachu平台CSRF(get)模块,打开burp suite进行抓包。然后执行下图中的操作。

2、来到burp suite,将截取的数据包里边的GET请求内容复制到notepad++,进行URL链接的伪造。

3、复制上边的地址,然后再浏览器新开一个标签页,输入刚才的链接,回车。

4、这时候如果用户刷新自己的页面,信息确实被做了修改。

2.2 POST方式

1、来到pikuchu平台的CSRF(post)模块,我们同样使用lucy进行登陆,登录之后我们将地址改回usa,性别改回girl。然后提交修改的数据,来到burp suite观看结果。

 

三、CSRF token

token是如何防止CSRF的?

    CSRF的主要问题是敏感操作的链接容易被伪造,我们需要做的就是让这个链接不容易被伪造,我们可以采取每次请求,都增加一个随机码(应该够随机,不容易伪造)的方法,这样后台每次都会对随机码进行验证。

下面我们来演示一下。

1、来到pikachu的CSRF token 模块,仍然拿lucy进行登陆,然后进入到信息修改页面。

2、我们再看一下抓到的包。打开burp suite

3、下面我们再来看一下源码。

四、常见的CSRF防范措施

1、增加token验证(常用的做法)

    对关键操作增加token参数,token值必须是随机的,每次都不一样

2、关于安全的会话管理(避免会话被利用)

(1)不要再客户端保存敏感信息(比如身份认证信息);

(2)测试直接关闭,退出时的会话过期机制;

(3)设置会话国企机制,比如几分钟内误操作,自动登陆超时。

3、访问控制安全管理

(1)敏感信息的修改时需要对身份进行二次认证,例如:修改账号时,需要验证旧的密码。

(2)敏感信息的修改使用POST,而不是GET

(3)通过http投不中的referer来限制原页面。

4、增加验证码:

    一般用在登陆(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)

pikachu-跨站请求伪造(CSRF)的更多相关文章

  1. PHP安全编程:跨站请求伪造CSRF的防御(转)

    跨站请求伪造(CSRF)是一种允许攻击者通过受害者发送任意HTTP请求的一类攻击方法.此处所指的受害者是一个不知情的同谋,所有的伪造请求都由他发起,而不是攻击者.这样,很你就很难确定哪些请求是属于跨站 ...

  2. 跨站请求伪造(CSRF)-简述

    跨站请求伪造(CSRF)-简述 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 ...

  3. 跨站请求伪造(CSRF)攻击原理解析:比你所想的更危险

    跨站请求伪造(CSRF)攻击原理解析:比你所想的更危险 跨站请求伪造(Cross-Site Request Forgery)或许是最令人难以理解的一种攻击方式了,但也正因如此,它的危险性也被人们所低估 ...

  4. django之跨站请求伪造csrf

    目录 跨站请求伪造 csrf 钓鱼网站 模拟实现 针对form表单 ajax请求 csrf相关的两个装饰器 跨站请求伪造 csrf 钓鱼网站 就类似于你搭建了一个跟银行一模一样的web页面 , 用户在 ...

  5. 跨站请求伪造 CSRF / XSRF<一:介绍>

    跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一 ...

  6. 跨站请求伪造CSRF(Cross-site request forgery)

    CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站 ...

  7. 跨站请求伪造(csrf)中间件整理

    一. CSRF中间件 字面意思跨站请求伪造; 即模仿个请求朝服务器发送,django中对跨站伪造的请求有相应的校验 from django.views.decorators.csrf import c ...

  8. 跨站请求伪造(csrf)的防护手段

    CSRF CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造. CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求. 造成的问题:个人隐私泄露以及财产安全. CS ...

  9. 跨站请求伪造CSRF:攻击与防御

    CSRF是什么         (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为&quo ...

  10. 跨站请求伪造CSRF

    CSRF是Cross Site Request Forgery的缩写,乍一看和XSS差不多的样子,但是其原理正好相反,XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求. 在XSS危害 ...

随机推荐

  1. latex一些有用的写法

    编辑博文的时候总是忘语法,然后到网上查-- 干脆记一下! 1.编辑漂亮的函数上下标 \(\sum\limits_{i=1}^n\) 对于原有的函数:$\sum\limits_{i=1}^n$ \(\m ...

  2. 阿里fastjson解析

    解析案例 String object="{total=1, rows=[{_Account=3646808, UserID=131514, Mt4Name=SewwoaIQQS, Serve ...

  3. 网络io模型总结

    操作系统基本概念 首先来来说下操作系统,嗯,操作系统是计算机硬件的管理软件,是对计算机硬件的抽象,操作系统将应用程序分为用户态和内核态,例如驱动程序就位于内核态,而我们写的一般程序都是用户态,包括we ...

  4. 数据结构 二维数组-->稀疏数组-->二维数组

    稀疏数组基本概念: 稀疏数组应用场景: 当一个数组大部分的元素为"0",或者为同一个值的数组时,可以使用稀疏数组来保存该数组 处理方法: 1>记录数组一共有几行几列,有多少不 ...

  5. JS-05-元素获取

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. go--->共享内存和通信两种并发模式原理探究

    共享内存和通信两种并发模式原理探究 并发理解 人类发明计算机编程的本质目的是为了什么呢?毫无疑问是为了解决人类社会中的各种负责业务场景问题.ok,有了这个出发点,那么想象一下,比如你既可以一心一意只做 ...

  7. idea 2019.3 破解激活码

    idea激活码(亲测 idea 2019.3可用)有效期到2021年3月: QYYBAC9D3J-eyJsaWNlbnNlSWQiOiJRWVlCQUM5RDNKIiwibGljZW5zZWVOYW1 ...

  8. NLP(二十)利用BERT实现文本二分类

      在我们进行事件抽取的时候,我们需要触发词来确定是否属于某个特定的事件类型,比如我们以政治上的出访类事件为例,这类事件往往会出现"访问"这个词语,但是仅仅通过"访问&q ...

  9. 分析Ajax爬取今日头条街拍美图-崔庆才思路

    站点分析 源码及遇到的问题 代码结构 方法定义 需要的常量 关于在代码中遇到的问题 01. 数据库连接 02.今日头条的反爬虫机制 03. json解码遇到的问题 04. 关于response.tex ...

  10. C# WinForm 使用SMS接口发送手机验证码+图形验证码+IP限制

    https://blog.csdn.net/IT_xiao_guang_guang/article/details/104299983 前言   1.发送手机验证码用的是网建的SMS接口(http:/ ...