XSS漏洞理解

(一)XSS简介

  • 跨站脚本攻击XSS(Cross Site Scripting)。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS通常被用于获取Cookie、以受攻击者的身份进行操作等行为。
  • XSS分为:反射型存储型DOM型

(二)反射型XSS

  • 非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面,且受到XSS Auditor、NoScript等防御手段的影响较大。反射型XSS大多数是用来盗取用户的Cookie信息。

  • 输入框中提交数据:<script>alert('Hack')</script>,提交表单后,网页直接弹出了Hack弹窗,可以看到,我们插入的语句已经被页面给执行了。这种漏洞数据流向是: 前端–>后端–>前端。

(三)存储型XSS

  • 攻击者能够把攻击载荷存入服务器的数据库中,造成持久化的攻击。

  • 攻击者在社区写下一篇包含恶意 JavaScript代码的博客文章或评论,文章或评论发表后,所有访问该博客文章或评论的用户,都会在他们的浏览器中执行这段恶意的JavaScript代码。

  • 存储型攻击大致需要经历以下几个步骤
    1、首先攻击者利用站点漏洞将一段恶意JavaScript代码提交到网站数据库中
    2、然后用户向网站请求包含了恶意 JavaScript脚本的页面
    3、当用户浏览该页面的时候,恶意脚本就会执行,如将用户的cookie信息等数据上传到恶意服务器

(四)DOM型XSS

  • DOM型XSS一般和服务器的解析响应没有直接关系,而是在JavaScript脚本动态执行的过程中产生的。通过恶意脚本修改页面的DOM节点,是发生在前端的攻击

  • 基于DOM攻击大致需要经历以下几个步骤
    1、攻击者构造出特殊的URL,其中包含恶意代码
    2、用户打开带有恶意代码的URL
    3、用户浏览器接受到响应后执行解析,前端JavaScript取出URL中的恶意代码并执行
    4、恶意代码窃取用户数据并发送到攻击者的网站,冒充用户行为,调用目标网站接口执行攻击者指定的操作。

(五)XSS危害

  • 用户的Cookie被获取,其中可能存在Session ID等敏感信息。攻击者可能用对应Cookie登陆服务器。
  • 攻击者能够在一定限度内记录用户的键盘输入。
  • 攻击者通过CSRF等方式以用户身份执行危险操作。
  • XSS蠕虫。
  • 获取用户浏览器信息。
  • 利用XSS漏洞扫描用户内网。

(六)XSS绕过

  • 区分大小写过滤标签 <scripT>alert('hack')</scripT>
  • 嵌套的script标签绕过<scr<script>ipt>alert('hack')</scr</script>ipt>
  • 无法使用<script>标签注入XSS代码,可以通过img、body等标签的事件src 注入恶意的 js 代码。<img src=1 οnerrοr=alert('hack')>

(七)XSS防御

  • 过滤,如:<script>、<img>、<a>等标签进行过滤。
  • 编码,如:<>在输入的时候要对其进行转换编码,防止浏览器对该标签进行解释执行的。
  • 限制,对预期的输入限制长度强,制截断来。

猜你喜欢

转载自blog.csdn.net/qq_43307937/article/details/123616370