web安全 | 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
一、xss
1.什么是xss攻击
跨站脚本攻击(全称Cross Site Scripting,为和CSS(层叠样式表)区分,简称为XSS)是指恶意攻击者在Web页面中插入恶意javascript代码(也可能包含html代码),当用户浏览网页之时,嵌入其中Web里面的javascript代码会被执行,从而达到恶意攻击用户的目的。
在前端安全中,最常见的就是用户恶意输入HTML结构的字符串或script脚本,服务器没有进行验证或转义,将其完整渲染出来,从而达到攻击的目的。
xss攻击主要分为以下四种:
stored xss
stored xss 可以简单概括为恶意脚本被存储在数据库中。当有用户访问页面进行读数据操作时,就会被攻击,这种xss攻击危害最大,因为脚本被存储在数据库中,因此对全部用户都可见。
reflected xss
这种攻击方式不涉及到数据库,从url上进行攻击。 比如说当攻击者将一个脚本恶意携带在url的一个参数上,如:
http://xxxxxxxxxxxxx?param=<script>alert(document.cookie)</script>
那么当服务器在执行脚本时,如果不对参数的内容加以验证,脚本就会被执行,攻击者从而达到攻击的目的
dom based xss
这种攻击方式不需要服务器的参与,恶意攻击和执行全在浏览器上完成。
mutation-base xss
利用浏览器渲染dom的特性去进行攻击
如:
<noscript><p title="</noscript><img src = x onerror = alert(1)">>
在谷歌浏览器中,这个看似平平无奇的title属性会被渲染出来,而由于img的src不符合规范,会触发error事件,从而完成一次xss攻击
这种攻击在网络安全中是最难防御的,这需要攻击者清楚的知道浏览器渲染机制的原理。
二、CSRF
csrf全程为跨站伪造请求,是指黑客引诱用户打开黑客的网站,在黑客的网站中,利用用户的登录状态发起的跨站请求。简单来讲,CSRF 攻击就是黑客利用了用户的登录状态,并通过第三方的站点来做一些坏事
DOS (denial of service)
这是通过构造特定的请求,导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而造成服务器雪崩。
一个最简单的例子:例如一个在线网站提供词频查找服务,其中的代码用到了正则表达式的贪婪模式,那么攻击者就可以构造出特定的字符传来让服务器不断的进行递归判断,从而造成服务器资源消耗而导致的崩溃
DDOS
分布式(英文意思是Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击,其中的攻击者可以有多个。
ddos一个最直观的例子就是通过传输层tcp协议进行攻击的例子
我们先来复习一下tcp协议
tcp是面向连接的传输层协议,他最显著的特征就是提供可靠交互的服务,及通过tcp连接传输的数据,无差错,不丢失,不重复,并且按序到达。
而ddos可利用tcp可靠传输三次握手的特性,向服务器发送大量的SYN,那么服务器就会按照规范,向我们返回相等数量的SYN以及ACK来确认请求,这个时候攻击者不向服务器发送ACK进行确认,造成服务器等待大量请求,从而造成拥塞
注入
注入攻击攻击的对象的数据库,向数据库中插入恶意的语句,如drop,从而对服务器上的数据发起攻击