pikachu-跨站请求伪造(CSRF)
一、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)的更多相关文章
- PHP安全编程:跨站请求伪造CSRF的防御(转)
跨站请求伪造(CSRF)是一种允许攻击者通过受害者发送任意HTTP请求的一类攻击方法.此处所指的受害者是一个不知情的同谋,所有的伪造请求都由他发起,而不是攻击者.这样,很你就很难确定哪些请求是属于跨站 ...
- 跨站请求伪造(CSRF)-简述
跨站请求伪造(CSRF)-简述 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 ...
- 跨站请求伪造(CSRF)攻击原理解析:比你所想的更危险
跨站请求伪造(CSRF)攻击原理解析:比你所想的更危险 跨站请求伪造(Cross-Site Request Forgery)或许是最令人难以理解的一种攻击方式了,但也正因如此,它的危险性也被人们所低估 ...
- django之跨站请求伪造csrf
目录 跨站请求伪造 csrf 钓鱼网站 模拟实现 针对form表单 ajax请求 csrf相关的两个装饰器 跨站请求伪造 csrf 钓鱼网站 就类似于你搭建了一个跟银行一模一样的web页面 , 用户在 ...
- 跨站请求伪造 CSRF / XSRF<一:介绍>
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一 ...
- 跨站请求伪造CSRF(Cross-site request forgery)
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站 ...
- 跨站请求伪造(csrf)中间件整理
一. CSRF中间件 字面意思跨站请求伪造; 即模仿个请求朝服务器发送,django中对跨站伪造的请求有相应的校验 from django.views.decorators.csrf import c ...
- 跨站请求伪造(csrf)的防护手段
CSRF CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造. CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求. 造成的问题:个人隐私泄露以及财产安全. CS ...
- 跨站请求伪造CSRF:攻击与防御
CSRF是什么 (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为&quo ...
- 跨站请求伪造CSRF
CSRF是Cross Site Request Forgery的缩写,乍一看和XSS差不多的样子,但是其原理正好相反,XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求. 在XSS危害 ...
随机推荐
- 2.Scanner的进阶使用
package com.duan.scanner; import java.util.Scanner; public class Demo04 { public static void main(St ...
- springboot的yml不显示的原因
首先排除插件原因 1 安装好插件Ctrl+Alt+S 2 查看修改的application.yml是什么格 在yaml格式中添加*.yaml和*.yml 3 查看maven是否配置完善
- ajxa的TypeError: $.ajax is not a function的冲突问题
在加载onclick的方法异步过程中,浏览器报错 首先自我检查 原因一:没有加载Jquery库,原因二:$.ajax没有在$(function(){$.ajax();})中. 发现都不是 原因三:有没 ...
- 实用代码|Linux定时检查应用状态
有时候,我们挂在服务器上的应用会因为一些特殊情况挂掉,致使项目经理又对我们说:又挂了!赶紧去看看!于是又了以下脚本,使用shell编写,用于定时检查应用情况,挂掉则重启.这里以tomcat为例. 根据 ...
- xlwings excel(四)
前言 当年看<别怕,Excel VBA其实很简单>相见恨晚,看了第一版电子版之后,买了纸质版,然后将其送人.而后,发现出了第二版,买之收藏.之后,发现Python这一编程语言,简直是逆天, ...
- 创建模仿存储库 Making a Mock Repository 精通ASP-NET-MVC-5-弗瑞曼 Listing 7-5
- 机器学习-TensorFlow应用之 binned features, Cross features和optimizer
概述 这一节主要介绍一下TensorFlow在应用的过程中的几个小的知识点,第一个是关于features的处理的,例如Bucketized (Binned) Features 和 Feature sc ...
- 《前端之路》--- 重温 Koa2
目录 一.简单介绍 二. 路由 三.请求数据 四. 静态资源加载 五. 静态资源加载 六. koa2加载模板引擎 七. koa2 中简单使用 mysql 数据库 八. koa2 中使用单元检测 九. ...
- 对于n!的快速质因数分解
N!的阶乘的质因数分解 对于N的阶乘 比如8! 我们要算其中一个质因数出现次数 我们注意到 8!=1 2 3 4 5 6 7 8 1 1 1 1 2的倍数出现的次数8/2=4 1 1 4的倍数出现的次 ...
- Docker底层架构之基础架构
Docker 采用了 C/S架构,包括客户端和服务端. Docker daemon 作为服务端接受来自客户 的请求,并处理这些请求(创建.运行.分发容器). 客户端和服务端既可以运行在一个机器上,也可 ...