一、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、增加验证码:

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

最新文章

  1. Linux:Ubuntu16.04下创建Wifi热点
  2. sublime text 3 快捷键大全
  3. NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager 解决方法
  4. MySQL之聚合
  5. DNS查询指令nslookup
  6. 数往知来 ASP.NET 模拟服务器:服务端_静态页面_动态页面的响应<十七>
  7. RT:How HTTP use TCP connection
  8. [Python 3.x 官方文档翻译]The Python Tutorial Python教程
  9. c语言typedef运用与函数指针
  10. js获取url传递参数的写法
  11. Laravel中的队列处理
  12. AJP协议总结与分析
  13. win7下硬盘安装win7+linuxUbuntu双系统方法
  14. IPoint Interface接口
  15. 201521123036 《Java程序设计》第12周学习总结
  16. AMBARI Blueprint 使用文档
  17. 自娱自乐RN版小说APP历程记录
  18. Linux下进程/程序网络带宽占用情况查看工具 -- NetHogs
  19. 论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline
  20. thinkphp5 URL的访问

热门文章

  1. 聊一聊 InnoDB 引擎中的这些索引策略
  2. linux 为动态分配的Virtualbox虚拟硬盘扩容
  3. Hyper-V 搭建独臂路由器(单网卡也可以)
  4. 机器学习-TensorFlow应用之classification和ROC curve
  5. HTML中CSS引用——选择器的使用
  6. [CF 487C Prefix Product Sequence]
  7. JDK源码之String类解析
  8. Spring JSTL 获取后端数据失败。
  9. 使用AOP和Semaphore对项目中具体的某一个接口进行限流
  10. Asp.Net Core 混合全球化与本地化支持