Web安全_常见的攻击方式

Web安全_常见的攻击方式

常见的攻击方式
一、跨站脚本攻击XSS
XSS产生的原因:过于信任客户端提交的数据
恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
XSS的分类:
1、反射型
把用户的输入“反射”到浏览器上,通常攻击者需要诱使用户点击一个恶意链接,才能攻击成功。
2、存储型
把用户输入的数据“存储在服务器端”,常见情景就是攻击者发表了一篇含有恶意代码的博客,当其他人浏览时,恶意代码就会被执行。
3、DOM Based
这个类型并不是以数据是否有存储到服务来分类,因为此类攻击形成原因比较特殊,是修改页面的DOM节点形成XSS,所以会把它单独列为一个分类

例子1
正常发送消息:http://www.test.com/message.html?send=Hello,World!接收者将会接收信息并显示Hello,Word

非正常发送消息: (1).http://www.test.com/message.html?send=!接收者接收消息显示的时候将会弹出警告窗口,攻击者也就是诱使他人点击此链接来发起进攻

(2).http://xxx/?redirect_to=javascript:alert(‘XSS’)
不仅仅是特殊字符,连 javascript: 这样的字符串如果出现在特定的位置也会引发 XSS 攻击。

例子2
页面后台有个能修改用户提交的input元素
正常情况:用户输入123,后台标签

非正常情况:
(1).用户输入" οnclick="alert(1),后台标签当管理者点击标签是就会弹出警告窗口

XSS危害:
1、窃取用户cookies资料,从而获取用户隐私信息
2、劫持用户浏览器会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等
XSS防御:
1、对输入输出进行过滤,内容编码
2、HttpOnly 禁止js操作cookie窃取用户cookies资料,从而获取用户隐私信息

XSS 有哪些注入的方法:
在 HTML 中内嵌的文本中,恶意内容以 script 标签形成注入。
在内联的 JavaScript 中,拼接的数据突破了原本的限制(字符串,变量,方法名等)。
在标签属性中,恶意内容包含引号,从而突破属性值的限制,注入其他属性或者标签。
在标签的 href、src 等属性中,包含 javascript: 等可执行代码。
在 onload、onerror、onclick 等事件中,注入不受控制代码。
在 style 属性和标签中,包含类似 background-image:url(“javascript:…”); 的代码(新版本浏览器已经可以防范)。
在 style 属性和标签中,包含类似 expression(…) 的 CSS 表达式代码(新版本浏览器已经可以防范)。
总之,如果开发者没有将用户输入的文本进行合适的过滤,就贸然插入到 HTML 中,这很容易造成注入漏洞。攻击者可以利用漏洞,构造出恶意的代码指令,进而利用恶意代码危害数据安全。

二、跨站点请求伪造CSRF
CSRF 产生原因:重要请求操作的参数都是可以被攻击者猜测到的,攻击者绕过同源策略限制将伪造请求发送出去,而相关的身份信息在cookie中也随之发送。
攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作。

例子1
银行转账
1、用户登录某银行网站,银行转账请求url为 http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory
2、此时用户访问恶意网站
3、恶意网址中有 使用img标签绕过了同源策略向银行服务器发起请求,cookie中身份信息也随请求发送出去,完成了攻击。

CSRF防御
1、Referer Check 检查请求中的referer头,如果不是合法网站发起请求就拒绝服务。但是不足之处是服务器并非什么时候都能获取到Referer。
2、Anti CSRF Token 在请求的url或者请求头中加入Token,攻击者在不知道Token的情况下就无法攻击成功

三、点击劫持ClickJacking
原理:利用了视觉欺骗

攻击方式:
1、攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下操作的都是透明的iframe页面,而不是显示的页面
2、攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义

例子1
用iframe加载了antd-design页面,然后用一个a标签盖住了页面的logo,点击logo时就会跳到a标签指向的页面

防御:
X-FRAME-OPTIONS是微软提出的一个http头,专门用来防御利用iframe嵌套的点击劫持攻击。
DENY // 拒绝任何域加载
SAMEORIGIN // 允许同源域下加载
ALLOW-FROM // 可以定义允许frame加载的页面地址

你可能感兴趣的:(web安全)