漏洞2

1.跨站点请求伪造(CSRF)

1.1 简介

CSRF攻击的全称是跨站请求伪造( cross site request forgery ):

是一种对网站的恶意利用,尽管听起来跟XSS跨站脚本攻击有点相似,但事 实上CSRF与XSS差别很大,XSS利用的是站点内的信任用户,而CSRF则是通过 伪装来自受信任用户的请求来利用受信任的网站。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R26PAYws-1640103451172)(../../../Library/Application%20Support/typora-user-images/image-20211221235529912.png)]

简单理解:一种可以被攻击者用来通过用户浏览器冒充用户身份向服务器发送 伪造请求并被目标服务器成功执行的漏洞被称之为CSRF漏洞。

特点:

用户浏览器:表示的受信任的用户
冒充身份:恶意程序冒充受信任用户(浏览器)身份
伪造请求:借助于受信任用户浏览器发起的访问

1.2 CSRF攻击原理

image-20211221235734341

1.3 漏洞危害分析

CSRF攻击特点:

  • 攻击时机:网站的cookie在浏览器中没有过期,不关闭浏览器或者退出登录

  • 攻击前提:对目标网站接口有一定了解

  • 攻击难度:攻击难度高于XSS

与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当 稀少)和难以防范,所以被认为比XSS更具危险性。

危害: 修改密码、网银转账 ......

image-20211221235905571

1.4 安全防护

  • 区分是否为伪造请求
  • 二次验证

referer校验:

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一 般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可 以获得一些信息用于处理。

image-20211222000035342

业务二次校验:

  • 修改密码,需输入原密码
  • 交易系统设置交易密码
  • 增加图形验证码校验
  • 网银转账短信验证码

2、点击劫持

2.1 攻击原理

点击劫持(Click Jacking),也被称为UI覆盖攻击。

1、黑客创建一个网页利用iframe包含目标网站;隐藏目标中的网站,是用户无法察觉到目标网站的存在;

诱使用户点击图中特定的按钮。特定的按钮为位置和原网页中关键按钮位置一致

2 、用户在不知情的情况下点击按钮,被引诱执行了危险操作

2.2 攻击方式

两种方式:

  • 一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该 页面上进行操作,此时用户将在不知情的情况下点击透明的iframe页面;

  • 二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义

2.3 解决办法

使用一个HTTP头——X-Frame-Options。X-Frame-Options可以说是为了解决 ClickJacking而生的,它有三个可选的值:

  • DENY:浏览器会拒绝当前页面加载任何frame页面;
  • SAMEORIGIN :frame页面的地址只能为同源域名下的页面;
  • ALLOW-FROM origin:允许frame加载的页面地址;

nginx配置:

add_header X-Frame-Options SAMEORIGIN;

3、图片覆盖攻击与防护

图片覆盖攻击(Cross Site Image Overlaying),攻击者使用一张或多张图 片,利用图片的style或者能够控制的CSS,将图片覆盖在网页上,形成点击劫 持。当然图片本身所带的信息可能就带有欺骗的含义,这样不需要用户点击, 也能达到欺骗的目的。

防护

在防御图片覆盖攻击时,需要检查用户提交的HTML代码中,img标签的style属 性是否可能导致浮出。

4、URL跳转漏洞

URL跳转漏洞(URL重定向漏洞),跳转漏洞一般用于钓鱼攻击。

https://link.zhihu.com/?target=https://www.baidu.com/

4.1 原理:

URL跳转漏洞本质上是利用Web应用中带有重定向功能的业务,将用户从一 个网站重定向到另一个网站。其最简单的利用方式为诱导用户访问http://www. aaa.com?returnUrl=http://www.evil.com,借助www.aaa.com让用户访问wwww.evil.com,这种漏洞被利用了对用户和公司都是一种损失。

4.2 防护方案

限制referer、添加token,这样可以避免恶意用户构造跳转链接到处散播,修复该漏洞最根本的方法还是上述的严格检查跳转域名。

  • 代码固定跳转地址,不让用户控制变量
  • 跳转目标地址采用白名单映射机制 比如1代表www.goole.cn,2代表www.baidu.com,其它记录日志
  • 合理充分的校验机制,校验跳转的目标地址,非己方地址时告知用户跳转风x险

5、Session攻击

5.1 会话(Session)劫持

会话劫持(Session hijacking)就是一种通过窃取用户SessionID后,使用该 SessionID登录进目标账户的攻击方法,此时攻击者实际上是使用了目标账户的 有效Session。如果SessionID是保存在Cookie中的,则这种攻击可以称为 Cookie劫持。

image-20211222000944320

5.2 会话固定(Session fixation)

会话固定(Session fixation)是一种诱骗受害者使用攻击者指定的会话标识 (SessionID)的攻击手段。这是攻击者获取合法会话标识的最简单的方法。让 合法用户使用黑客预先设置的sessionID进行登录,从而是Web不再进行生成新 的sessionID,从而导致黑客设置的sessionId变成了合法桥梁。

image-20211222001034973

5.3 Session保持攻击

一般来说,Session是有生命周期的,当用户长时间未活动后,或者用户点击退 出后,服务器将销毁Session。Session如果一直未能失效,会导致什么问题 呢?前面的章节提到session劫持攻击,是攻击者窃取了用户的SessionID,从 而能够登录进用户的账户

但如果攻击者能一直持有一个有效的Session(比如间隔性地刷新页面’以告诉服 务器这个用户仍然在活动),而服务器对于活动的Session也一直不销毁的话, 攻击者就能通过此有效Session—直使用用户的账户,成为一个永久的‘后门

你可能感兴趣的:(漏洞2)