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危害 ...
随机推荐
- Java入门 - 语言基础 - 15.StringBuffer
原文地址:http://www.work100.net/training/java-stringbuffer.html 更多教程:光束云 - 免费课程 StringBuffer 序号 文内章节 视频 ...
- .NetCore自定义WebAPI返回Json的格式大小写的三种方式
.NetCore的Controller/WebAPI可以帮我们将返回结果自动转换为Json格式给前台,而且可以自由设定格式(大写.小写.首字母大写等),我总结了三种方法,对应三种灵活度,供大家参考 ( ...
- HGE引擎改进——2014/1/27
2014/1/27 更新 hge库: 1.增加回调函数procResizeFunc(),这个函数会在窗口大小改变时调用,不是必要函数 2.修复LOG信息显示为乱码的错误 项目主页:https://co ...
- Object类、常用API_2
主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 学习目标 -[ ] 能够说出Object类的特点 -[ ] 能够 ...
- CSS-02-css的三种基础选择器
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 转载: Java虚拟机:运行时内存数据区域、对象内存分配与访问
转载: https://blog.csdn.net/a745233700/article/details/80291694 (虽然大部分内容都其实是深入理解jvm虚拟机这本书里的,不过整理的很牛逼 ...
- 快乐编程大本营【java语言训练班】第5课: java的数组编程
快乐编程大本营[java语言训练班]第5课: java的数组编程 第1节. 声明数组变量 第2节. 创建数组对象 第3节. 访问数组元素 第4节. 修改数组元素 第5节. 多维数组 学习地址如下:ht ...
- 实验11:EIGRP
实验8-1:EIGRP 基本配置 实验目的通过本实验可以掌握:(1)在路由器上启动EIGRP 路由进程(2)启用参与路由协议的接口,并且通告网络(3)EIGRP 度量值的计算方法(4)可行距离(FD) ...
- MCI使用
MCI(Media Control Interface)媒体控制接口是MircroSoft提供的一组多媒体设备和文件的标准接口,它的好处是可以方便地控制绝大多数多媒体设备包括音频.视频.影碟.录像等多 ...
- 最大连续和(dp复习)
最大连续和:给出一段序列,选出其中连续且非空的一段使得这段和最大. stdin: 7 2 -4 3 -1 2 -4 3 stdout: 4 状态转移方程:dp[i]=max(dp[i-1]+a[i], ...