课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,网络信息攻击成为了威胁企业信息安全的又一大隐患,今天我们就一起来了解一下,常见的互联网xss攻击都有哪些类型。
什么是XSS
Cross-SiteScripting(跨站脚本攻击)简称XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如Cookie、SessionID等,进而危害数据安全。
为了和CSS区分,这里把攻击的一个字母改成了X,于是叫做XSS。
XSS的本质是:恶意代码未经过滤,与网站正常的代码混在一起;浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。
而由于直接在用户的终端执行,恶意代码能够直接获取用户的信息,或者利用这些信息冒充用户向网站发起攻击者定义的请求。
在部分情况下,由于输入的限制,注入的恶意脚本比较短。但可以通过引入外部的脚本,并由浏览器执行,来完成比较复杂的攻击策略。
这里有一个问题:用户是通过哪种方法“注入”恶意脚本的呢?
不仅仅是业务上的“用户的UGC内容”可以进行注入,包括URL上的参数等都可以是攻击的来源。在处理输入时,以下内容都不可信:
来自用户的UGC信息
来自三方的链接
URL参数
POST参数
Referer(可能来自不可信的来源)
Cookie(可能来自其他子域注入)
XSS分类
根据攻击的来源,XSS攻击可分为存储型、反射型和DOM型三种。
|类型|存储区*|插入点*|
|-|-|
|存储型XSS|后端数据库|HTML|
|反射型XSS|URL|HTML|
|DOM型XSS|后端数据库/前端存储/URL|前端JavaScript|
存储区:恶意代码存放的位置。
插入点:由谁取得恶意代码,并插入到网页上。
存储型XSS
存储型XSS的攻击步骤:
1.攻击者将恶意代码提交到目标网站的数据库中。
2.用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在HTML中返回给浏览器。
3.用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
4.恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。
这种攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等。
反射型XSS
反射型XSS的攻击步骤:
1.攻击者构造出特殊的URL,其中包含恶意代码。
2.用户打开带有恶意代码的URL时,网站服务端将恶意代码从URL中取出,拼接在HTML中返回给浏览器。
3.用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
4.恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。
反射型XSS跟存储型XSS的区别是:存储型XSS的恶意代码存在数据库里,反射型XSS的恶意代码存在URL里。
反射型XSS漏洞常见于通过URL传递参数的功能,如网站搜索、跳转等。
由于需要用户主动打开恶意的URL才能生效,攻击者往往会结合多种手段诱导用户点击。
POST的内容也可以触发反射型XSS,只不过其触发条件比较苛刻(需要构造表单提交页面,并引导用户点击),所以非常少见。
DOM型XSS
DOM型XSS的攻击步骤:
1.攻击者构造出特殊的URL,其中包含恶意代码。
2.用户打开带有恶意代码的URL。
3.用户浏览器接收到响应后解析执行,前端JavaScript取出URL中的恶意代码并执行。
4.恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。
DOM型XSS跟前两种XSS的区别:DOM型XSS攻击中,取出和执行恶意代码由浏览器端完成,属于前端JavaScript自身的安全漏洞,而其他两种XSS都属于服务端的安全漏洞。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!