XSS跨站脚本攻击及防护

目录

一、初识XSS跨站脚本

1.1 XSS攻击概述

1.2 XSS漏洞攻击本质

1.3 XSS攻击的危害

1.4 XSS玫击原理

1.5 XSS攻击过程

1.6 XSS攻击特点(3)

1.6.1 间接攻击

1.6.2 可更正性

1.6.3 传播性强

二、XSS攻击与防护

2.1 XSS攻击分类

2.1.1 存储型XSS

2.1.2 反射型XSS

2.1.3 DOM型XSS

2.2 XSS攻击过程

2.2.1 存储型XSS攻击过程

2.2.2 反射型XSS攻击过程

2.2.3 反射型XSS跟存储型XSS的区别

2.2.4 DOM型XSS的攻击步骤

2.2.5 DOM型XSS跟前两种XSS的区别

2.2.6 三者区别

2.3 XSS攻击实战

2.3.1 盗取Cookie:诱骗点击

2.3.2 利用存储型XSS攻击,跨站的到一个木马网站

2.3.3 XSS入侵方式

2.4 XSS攻击防范

2.4.1 攻击者提交恶意代码

2.4.2 浏览器执行恶意代码


一、初识XSS跨站脚本

1.1 XSS攻击概述

XSS又叫CSSCross Site Scripting),即跨站脚本攻击,是最常见的 Web 应用程序安全漏洞之一。在绝大多数网络攻击中都是把XSS作为漏洞链中的第一环,通过XSS,黑客可以得到的最直接利益就是拿到用户浏览器的 cookie,从而变相盗取用户的账号密码,进而非授权的获取关键的隐私信息

XSS攻击是一种客户端访问嵌入有恶意脚本代码的Web页面,从而盗取信息、利用身份等的一种攻击行为。XSS属于客户端攻击受害者最终是用户。XSS的传播性极强,由于 web 的特点是轻量级灵活性高,每个用户每天都可能访问很多 web 站点,每个 web 站点每天都有成千上万的来访。如果将XSS攻击配合一些系统内核级的漏洞,完全可能在几个小时之内击垮几百万台智能设备。

1.2 XSS漏洞攻击本质

  • 恶意代码未经过滤,与网站正常的代码混在一起
  • 浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行

1.3 XSS攻击的危害

  • 盗取信息,包括用户账号,口令及有价值的敏感信息
  • 控制企业数据,包括读取、基改、添加、删除企业敏感数据的能力
  • 强制进行非法转账
  • 强制发送电子邮件
  • 网站挂马
  • 控制受害者机器向其它网站发起攻击

1.4 XSS玫击原理

XSS是指攻击者在网页中嵌入客户端脚本,通常是JavaScript 编写的恶意代码,也有使用其他客户端脚本语言编写的。当用户使用浏览器浏览被嵌入恶意代码的网页时,恶意代码将会在用户的浏览器上执行

Javascript 可以用来获取用户的 Cookie改变网页内容URL 跳转,攻击者可以在 script 标签中输入 Javascript 代码,如 alert(/xss/),实现一些“特殊效果”。

1.5 XSS攻击过程

1.6 XSS攻击特点(3

1.6.1 间接攻击

XSS攻击的最终目标是针对终端用户,即客户端,(包括获取账号密码,种马等),但是攻击代码是注入到目标网站

1.6.2 可更正性

XSS攻击产生的根本原因是Web网站对用户的输入过滤不足,是一种可更正性错误。

1.6.3 传播性强

攻击代码是注入到目标网站,每个用户每天都可能访问很多 web 站点,每个 web 站点每天都有成千上万的访客。

二、XSS攻击与防护

2.1 XSS攻击分类

2.1.1 存储型XSS

持久性:攻击者通过发表带有恶意跨域脚本的帖子或文章,从而把恶意脚本存储在服务器中,每个访问该帖子或文章的人都会触发该恶意脚本执行,这种XSS非常危险,容易造成蠕虫大量盗窃cookie

2.1.2 反射型XSS

非持久性:攻击者事先制作好攻击链接,将攻击脚本嵌入到某个 URL 链接中,诱骗用户自己去点击链接,从而触发攻击代码执行,完成该次玫击。

2.1.3 DOM型XSS

DOM:Document Object Model,即文档对象模型,它是标识和处理一个HTML或XML文档的常用方法,是以面向对象方式描述的文档模型

DOM型XSS:基于DOM文档对象模型的操作,通过前端脚本修改页面的DOM节点形成的xss,该操作不与服务器端进行交互,且代码是可见的,从前端获取到DOM中的数据在本地执行。只在客户端进行解析不需要服务器的解析响应,是前端JavaScript自身安全漏洞

2.2 XSS攻击过程

2.2.1 存储型XSS攻击过程

2.2.2 反射型XSS攻击过程

2.2.3 反射型XSS跟存储型XSS的区别

  • 存储型XSS的恶意代码存在数据库里,反射型XSS的恶意代码存在URL里。
  • 反射型XSS漏洞常见于通过URL传递参数的功能,如网站搜索、跳转等。由于需要用户主动打开恶意的URL才能生效,攻击者往往会结合多种手段诱导用户点击。

2.2.4 DOM型XSS的攻击步骤

 

2.2.5 DOM型XSS跟前两种XSS的区别

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

2.2.6 三者区别

存储区插入点
存储型服务器数据库HTML
及射型URLHTML
DOM型前端存储JavaScript

2.3 XSS攻击实战

2.3.1 盗取Cookie:诱骗点击

  • 攻击者利用反射型XSS漏洞获取受害者Cookie,从而可以实现无密码登陆
  • Cookie:由服务器端生成,发送给User—Agent(一般是浏览器),浏览器一般会将 Cookie 的 key/value 保存到某个目录下的文本文件内,下次请求同一网站时就发送该 Cookie 给服务器(前提是浏览器设置为启用cookie)。
  • Cookie 名称和值可以由服务器端开发自已定义,对于JSP而言也可以直接写入 jsessionid,这样服务器可以知道该用户是否为合法用户以及是否需要重新登录等。
  • 攻击者一般是需要一个可以公网访问的服务器,用于接收获取的Cookie。也就是需要将获取的指定Cookie信息传递给站点以外的服务器,这个过程其实就是跨站。

2.3.2 利用存储型XSS攻击,跨站的到一个木马网站

可跨站标签

  • <lmg>标签 src 属性
  • <Script>标签 src 属性
  • <Link>标签 href 属性
  • Css 中<img>标签
  • Flash 中<img>标签

2.3.3 XSS入侵方式

① 用于测试是否存在跨站

<script>alert ("test")</script>

② 弹出一个包含浏览者cookie信息的对话框

<script>window. alert (document.cookie);</script>

③ 打开另一个网页窗口

<script>window.open( http://www.target.com/index.asp' , ' newwindow' ,' width=200, height=200');</script>

④ 出现一个高0,宽0的网页框架

<iframe src=http://www.target.com/ index.asp width=0 height=0> </iframe>

⑤ 刷新到另一个页面

<meta http-equiv="refresh" content="1; URL=http://www.t ar get.com/index. asp">

⑥ Scriptlet引入另一个页面

<object type="text/x-scriptlet" data="http://www.target.com/index.asp"></object>

2.4 XSS攻击防范

XSS攻击的两大要素是攻击者提交恶意代码浏览器执行恶意代码,针对这两点进行防范。

2.4.1 攻击者提交恶意代码

防护的重点是针对用户数据,总体思路是:在服务器端对用户提交的内容进行过滤对URL的参数也进行过滤,屏蔽掉可以造成XSS攻击的内容。

输入过滤:

  • Str_replace() 替换函数
  • Preg_replace() 执行正则表达式的搜索和替换
  • Strtolower() 转化为小写字符
  • Trim() 消除空格
  • Stripslashes() 消除反斜杠

2.4.2 浏览器执行恶意代码

对HTML做充分转义:通常只有一个规则,就是把 & < > "  ' / 这几个字符转义掉,确实能起到一定的 XSS防护作用,如 htmlspecialchars() 可将"<”和">”转换为HTML实体

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
xss跨站脚本攻击实验的实验结果与分析如下: 在进行xss跨站脚本攻击实验时,我们首先构造了一个含有恶意脚本的注入网页,然后将该网页作为输入传递给目标网站。实验结果显示,攻击者成功将恶意脚本注入到目标网站中,当其他用户访问该目标网站时,恶意脚本会被执行,从而使得攻击者可以获取用户的敏感信息或进行其他不良行为。 对于实验结果的分析,可以得出以下几个结论: 1. 实验结果表明目标网站存在xss漏洞。这种漏洞的产生一般是因为目标网站未对用户输入进行充分的过滤和验证。攻击者通过在注入网页中插入恶意脚本,利用目标网站对用户输入的不当处理来实现攻击。因此,目标网站需要加强用户输入的过滤和验证,以避免类似的攻击。 2. 实验结果暴露了用户的敏感信息泄漏风险。通过成功注入恶意脚本,攻击者可以获取用户在目标网站的敏感信息,如用户名、密码等。这对用户的隐私安全构成了潜在威胁。 3. 实验结果提醒我们加强xss防护措施。为了避免类似的攻击,目标网站应当采取一系列的安全措施,包括对用户输入进行过滤和验证、设置合适的CSP(内容安全策略)等。此外,用户也应当保持警惕,避免点击可疑的链接,提高自身的网络安全意识。 在实施xss跨站脚本攻击的实验中,我们能够深入了解这种攻击的原理和危害,同时也提醒我们加强安全意识和措施,以保护自身和网站的安全

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值