龙空技术网

Web 攻击的常见攻击类型和防御方法

湖南蓝队网络 79

前言:

现在我们对“js攻击代码”大致比较关心,姐妹们都想要剖析一些“js攻击代码”的相关内容。那么小编也在网摘上汇集了一些有关“js攻击代码””的相关知识,希望朋友们能喜欢,各位老铁们快快来学习一下吧!

Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为,是黑客基于用户上网操作行为或针对服务器等硬件设施进行攻击的手段,例如客户端植入恶意攻击代码段,动态修改网站权限,嵌入获取用户隐私信息等。

确保Web应用程序安全十分重要,即使是代码中很小的 bug 也有可能导致隐私信息被泄露

最常见的攻击方式:

l XSS 跨站脚本攻击l CSRF 跨站请求伪造l SQL 注入

1、XSS跨站脚本攻击

xss攻击即跨站点脚本攻击( Cross Site Script), 指黑客通过篡改网页,注入恶意HTML脚本,保存在网站的服务器,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。

XSS攻击相对而言是一种“古老”的攻击手段,却又历久弥新,不断变化出新的攻击花样,许多以前认为不可能用来攻击的漏洞也逐渐被攻击者利用。因此XSS防攻击也是非常复杂的。

XSS涉及到三方,即攻击者、客户端与Web应用。XSS的攻击目标是为了盗取存储在客户端的cookie或者其他网站用于识别客户端身份的敏感信息。一旦获取到合法用户的信息后,攻击者甚至可以假冒合法用户与网站进行交互。

根据攻击的来源,XSS攻击可以分成:存储型、反射型、DOM 型

①存储型XSS

存储行 XSS 的攻击步骤:

l 攻击者将恶意代码提交到目标网站的数据库中l 用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器l 用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行l 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作

这种攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等

②反射型 XSS

反射型 XSS 的攻击步骤:

l 攻击者构造出特殊的 URL,其中包含恶意代码l 用户打开带有恶意代码的 URL 时,网站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器l 用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行l 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作

反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里。

反射型 XSS 漏洞常见于通过 URL 传递参数的功能,如网站搜索、跳转等。

由于需要用户主动打开恶意的 URL 才能生效,攻击者往往会结合多种手段诱导用户点击。

POST 的内容也可以触发反射型 XSS,只不过其触发条件比较苛刻(需要构造表单提交页面,并引导用户点击),所以非常少见。

③DOM 型 XSS

DOM 型 XSS 的攻击步骤:

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

DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。

2、CSRF 跨站请求伪造

CSRF 的全称是“跨站请求伪造”,而 XSS 的全称是“跨站脚本”。看起来有点相似,它们都是属于跨站攻击——不攻击服务器端而攻击正常访问网站的用户。

攻击原理:

CSRF顾名思义,是伪造请求,冒充用户在站内的正常操作。我们知道,绝大多数网站是通过 cookie等方式辨识用户身份(包括使用服务器端Session的网站,因为Session ID也是大多保存在cookie里面的),再予以授权的。所以要伪造用户的正常操作,最好的方法是通过XSS 或链接欺骗等途径,让用户在本机(即拥有身份cookie的浏览器端)发起用户所不知道的请求。一言蔽之就是冒充用户进行一些操作。

危害:

攻击者可以强制Web应用程序的用户执行攻击者选择的操作。一个成功的CSRF攻击可以在普通用户的情况下危害最终用户数据和操作。如果目标最终用户是管理员账户,则可能会危及整个Web应用程序。

防御方法:

l 通过 referer、token 或者验证码来检测用户提交;l 尽量不要在页面的链接中暴露用户隐私信息;l 对于用户修改删除等操作最好都使用post操作;l 避免全站通用的cookie,严格设置cookie的域。

3、SQL注入

SQL注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。

攻击原理:

用户直接输入SQL语句,如果应用使用的是拼接字符串的方式且没有过滤掉的话,当流程走到数据库部分的时候就会直接执行,等于说数据库的信息直接暴露在用户面前。

危害:

攻击者可能在易受攻击的系统上执行任SQL语句。这可能会危及数据库的完整性或暴露敏感信息。

防御方法:

l 验证并转移用户输入;l base64编码;l 绑定变量,使用预编语言;l 控制用户的权限,以及做好数据库本身的安全工作。

如今,电子政务、电子商务、网上银行、网上营业厅等依托Web应用,为广大用户提供灵活多样的服务。在这之中,流量攻击堪称是Web应用的最大敌人,黑客通过流量攻击获取利益、竞争对手雇佣黑客发起恶意攻击、不法分子通过流量攻击瘫痪目标后勒索高额保护费,往往会对业务造成严重损害。

对于开发者和企业网站管理人员来说,数据爬取、暴力破解和撞库等Web攻击手段日益复杂,均需要建立强大且实时的防御能力,避免业务乃至企业因防护脆弱“失血过多”而死。

部署Web应用防火墙,成为公认的最基础且有效的防御手段,Web应用防火墙部署简单、维护成本低,无需安装任何软件或者部署任何硬件设备即可将网站部署到云Web应用防火墙的防护范围之内。Web应用防火墙的防护规则都处于云端,新漏洞爆发时,由云端负责规则的更新和维护,用户无需担心因为疏忽导致受到新型的漏洞攻击。有需要的朋友可以联系我。

标签: #js攻击代码