XSS攻击理论基础

1、XSS简介

XSS(Cross Site Scripting)攻击全称跨站脚本攻击,为了不与CSS(Cascading Style Sheets)混淆,故将跨站脚本攻击缩写为XSS,XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
通俗的来说就是我们的页面在加载并且渲染绘制的过程中,如果加载并执行了意料之外的程序或代码(脚本、样式),就可以认为是受到了 XSS攻击。通常黑客通过“HTML注入”篡改了网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器。
XSS多是发生在web前端的一种漏洞,所以危害的对象主要还是前端用户。

 

2、XSS攻击的危害

XSS常被列为是客户端web安全中的头号大敌。因为XSS的破坏力强大,且场景复杂,难以一次性解决。危害有:

2.1、网站挂马
2.2、盗取用户Cookie、账号等信息
2.3、控制企业使劲,包括读取、篡改、添加、删除企业敏感数据的能力
2.4、盗窃企业重要的具有商业价值的资料
2.5、DOS(拒绝服务)客户端浏览器
......

3、XSS攻击的分类

现在业界内打成的共识是:针对不同产生场景的XSS,区分对待。可以分为以下几种:反射型XSS、存储型XSS、DOM 型 XSS。

3.1、反射型XSS

又叫非持久型XSS。反射型xss只是简单地把用户输入的数据“反射”给浏览器,发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。交互数据一般不会被存在数据库里面,一次性,所见即所得。

常见场景:黑客需要通过图片或者某中方式隐藏一个恶意链接,诱拐用户去点击,从而达到攻击效果。

场景:
1、用户A给用户B发送一个恶意构造了Web的URL。
2、用户B点击并查看了这个URL。
3、用户B获取到一个具有漏洞的HTML页面并显示在本地浏览器中。
4、漏洞HTML页面执行恶意JavaScript脚本,将用户B信息盗取发送给用户A,或者篡改用户B看到的数据等。

XSS攻击理论基础_第1张图片

 

3.2、存储型XSS

又叫持久型XSS。存储性XSS会把用户输入的数据“存储”在服务端,下次请求目标页面时不用再提交XSS代码。当目标用户访问该页面获取数据时,XSS代码会从服务器解析之后加载出来,返回到浏览器做正常的HTML和JS解析执行,XSS攻击就发生了。这种XSS攻击具有很强的稳定性。

常见场景一:黑客写了一篇包含有恶意js的博客文章,文章发表后,所以访问该博客文章的用户,都会在他们的浏览器中执行这段恶意代码,从而遭到攻击。
常见场景二:留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,那些留言的内容会从数据库查询出来并显示,浏览器发现有XSS代码,就当做正常的HTML与Js解析执行,于是触发了XSS攻击。

场景:

1、用户A在网页上创建了某个账户,并且账户信息中包含XSS代码。
2、用户B访问该网站查看XSS代码账户详情页面。
3、服务端返回账户详情页面,和带XSS账户信息。
4、用户B浏览器执行XSS代码,将用户B信息盗取发送给用户A,或者篡改用户B看到的数据等。

XSS攻击理论基础_第2张图片

 

3.3、DOM型XSS

 

一种特殊的反射型XSS,是通过修改页面的DOM节点形成的XSS。由客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据。一般从url中提取数据中含xss,未过滤并在本地执行dom的渲染操作,输入来源多是document.location、document.URL、document.URLUnencoded、document.referrer、window.location等,而触发api多是document.write()、document.writeln()、document.innerHtml、eval()、window.execScript()、window.setInterval()、window.setTimeout()等。

 

场景:
1、用户B访问网站url中带有XSS代码参数。
2、浏览器下载该网站JavaScript脚本。
3、JavaScript脚本有个方法获取URL中XSS代码参数,并且用innerHtml渲染在dom中。
4、触发XSS代码,造成XSS攻击,cookie数据失窃。

 

XSS攻击理论基础_第3张图片

 

你可能感兴趣的:(渗透测试,xss,渗透测试)