web常见的攻击手段

常见的攻击手段

DOS

DOS(Denial Service)拒绝服务式攻击,它是一种实现即简单很有效的针对服务器进行的攻 击方式,它的攻击目的就是让被攻击的主机和服务器拒绝用户正常访问,破坏系统正常运行 ,从而达到互联网用户无法连接被攻击的服务器和主机,造成服务器瘫痪。它的攻击过程,首先攻击者向被攻击的服务器发生大量带有虚假IP地址的服务请求,被攻击者在接收到请求 后返回确认信息,等待攻击者确认,此过程需要TCP的三次交换。由于攻击者发送的请求信 息是虚假的,所以被攻击服务器无法接受到信息确认,一直处于等待状态,而分配给这次请 求的资源却始终没有被释放。当被攻击者等待一定的时间后,连接会因超时而被断开,这是 攻击者再次发送新的虚假信息请求,就这样最终服务器资源被耗尽,直到瘫痪。

DDOS

DDOS(Distributed Denial Service)分布拒绝式攻击,它是在DOS基础上进行的大规模,大 范围的攻击模式,DOS只是单机和单机之间的攻击模式,而DDOS是利用一批受控制的僵尸主 机向一台服务器主机发起的攻击,其攻击的强度和造成的威胁要比DOS严重很多,更具破坏 性。首先DDOS攻击者要寻找僵尸主机,在互联网上寻找一些有后门漏洞的主机,然后入侵系 统安装控制程序,入侵的越多,控制的僵尸主机就越多,攻击源就更多,然后把入侵的主机 分配,一部分充当攻击的主要控制端,一部分充当攻击源,各负其责,在攻击者统一指挥下 对被攻击的服务器发起攻击,由于这个攻击模式是在幕后操作,所以很难被监控系统跟踪, 身份不容易被发现。

XSS

XSS(Cross Site Scripting),跨站脚本攻击。指的是通过网页开发过程中留下的漏洞,通过一些方法将恶意指令代码注入到网页中,使用户加载并执行攻击者的恶意程序指令。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

反射型XSS

攻击者的恶意代码并没有注入到网站中,而是诱使用户点击目标网站的链接来实施攻击。
反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里。
反射型 XSS 漏洞常见于通过 URL 传递参数的功能,如网站搜索、跳转等。

存储型XSS

攻击者的恶意代码被保存到目标网站的服务器中,这种攻击的持久性和稳定性较强。

DOM型XSS

DOM型指的就是攻击者输入恶意的代码前端没有做任何过滤被执行了,然后恶意代码发送到攻击者的网站,模拟用户的行为。

  1. 攻击者构造出特殊的 URL,其中包含恶意代码。
  2. 用户打开带有恶意代码的 URL。
  3. 用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行。
  4. 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作

反射型XSS和存储型XSS防范

存储型和反射型 XSS 都是在服务端取出恶意代码后,插入到响应 HTML 里的,攻击者刻意编写的“数据”被内嵌到“代码”中,被浏览器所执行。
预防这两种漏洞,有两种常见做法:

  • 改成纯前端渲染,把代码和数据分隔开。
  • 对 HTML 做充分转义。

DOM型XSS防范

DOM 型 XSS 攻击,实际上就是网站前端 JavaScript 代码本身不够严谨,把不可信的数据当作代码执行了。
在使用 .innerHTML.outerHTMLdocument.write() 时要特别小心,不要把不可信的数据作为 HTML 插到页面上,而应尽量使用 .textContent.setAttribute() 等。
如果用 Vue/React 技术栈,并且不使用 v-html/dangerouslySetInnerHTML 功能,就在前端 render 阶段避免 innerHTMLouterHTML 的 XSS 隐患。
DOM 中的内联事件监听器,如 locationonclickonerroronloadonmouseover 等,<a> 标签的 href 属性,JavaScript 的 eval()setTimeout()setInterval() 等,都能把字符串作为代码运行。如果不可信的数据拼接到字符串中传递给这些 API,很容易产生安全隐患,请务必避免。

常见的XSS注入方法

  • 在 HTML 中内嵌的文本中,恶意内容以 script 标签形成注入。
  • 在内联的 JavaScript 中,拼接的数据突破了原本的限制(字符串,变量,方法名等)。
  • 在标签属性中,恶意内容包含引号,从而突破属性值的限制,注入其他属性或者标签。
  • 在标签的 href、src 等属性中,包含 javascript: 等可执行代码。
  • 在 onload、onerror、onclick 等事件中,注入不受控制代码。
  • 在 style 属性和标签中,包含类似 background-image:url("javascript:..."); 的代码(新版本浏览器已经可以防范)。
  • 在 style 属性和标签中,包含类似 expression(...) 的 CSS 表达式代码(新版本浏览器已经可以防范)
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!