XSS跨站脚本初探

XSS跨站脚本初探

一、XSS初探

1、什么是xss
XSS原称CSS(cross site script),跨站脚本攻击。是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入,提供给其他用户使用的页面中。
由于web应用程序对用户的输入过滤不足而产生的
攻击者利用网站漏洞吧恶意的脚本代码(HTML代码/JavaScript脚本)
当用户浏览这些网页是,就会执行其中的恶意代码
主要库乐队用户cookie资料窃取、会话劫持、钓鱼欺骗等这种攻击
2.攻击流程
在这里插入图片描述
(一、)JavaScript实例
1、web前端源代码编写
在这里插入图片描述
2、访问我们编写的文件是讲JS代码直接写至前端代码中,这个是肯定可以执行的,一般情况下我们都是通过注入的方式给他注入
在这里插入图片描述
注:我们这里是将xss

(二)XSS脚本实例
1.源代码编写
(1)网页前端代码
在这里插入图片描述
(2)网页后端代码
在这里插入图片描述
函数解释:request函数既可以接收get请求也可以接收post请求
2.正常访问网站,在页面中随机输入一个值,观察结果
在这里插入图片描述
点击提交后,观察页面变化(这里我们正常输出了前端页面的输入的值)
在这里插入图片描述
3.再次访问前端界面,这里我们给它输入一个script脚本(XSS脚本)

在这里插入图片描述
如图,点击提交后,我们输入的Script语句进行了执行,这里就是一个XSS漏洞
注:此处我们是通过POST请求方式将语句带入并执行
4.访问后端源代码,这里我们通过GET方式给他输入一个script脚本(XSS脚本)

  • ?name= 弹出带有确定,取消的对话框

二、跨站脚本的分类

XSS根据其特性和利用手法的不同,主要分为三大类:

  • 反射型跨站脚本
  • 持久型(存储型)跨站脚本
  • DOM型
    、反射型XSS
    反射型跨站脚本(reflected cross-site scripting)也称非持久型,参数型跨站脚本
    主要用于将恶意脚本附加到URL地址的参数中
    例如:http://192.168.1.121:86/3.xss/05/XSS4.php?name=
    1.1反射型XSS攻击原理
  • 攻击者将恶意链接通过各种方式发送给受害者,诱使受害者点击链接,受害者一旦点击链接,机会携带者我们的恶意脚本发送给服务器,服务器执行完后,给受害者反馈的数据包中依然带着我们的恶意脚本,这样,受害者就收到了XSS攻击
    在这里插入图片描述

1.2编码转换
前面我们提到攻击者是讲恶意链接发送给受害者,受害者如果能够识别这个恶意链接,不去点击他,那么我们的攻击就不会生效,这里我们就需要对我们的恶意链接进行包装,也就是编码转换。(进行URL编码后将会大大正价迷惑性,增大攻击成功率)
2.持久性XSS
持久性跨站脚本(Persistent Cross-site Scripting)==存储型跨站脚本(Stored Cross-site Scripting)
此类XSS不需要用户点击特定的URL就能执行跨站脚本
攻击者事先将恶意JavaScript代码上传或存储到漏洞服务器中。
当受害者浏览包含此恶意Javascript代码的页面机会执行恶意代码。
2.1、持久型XSS攻击原理
在这里插入图片描述
存储型XSS攻击者不需要与受害者进行任意交互。当攻击者将恶意diamante传到服务器后,受害者只要访问带有我们恶意代码的信息,存储型XSS就会生效,机会打到我们恶意攻击的目的。
3、DOM型XSS
3.1什么是DOM
DOM就是把我们的html抽象成树,便于我们去获取里面的数据信息
3.2搭建网站源代码
在这里插入图片描述
访问页面
在这里插入图片描述
如图:是一个非常简单的购物清单,显示的内容是一份购物清单
DOM树
DOM会将HTML文件的节点构造成树状结构,以此反映HTML文件本身的阶层结构
在这里插入图片描述
3.3DOM型XSS原理
客户端的脚本程序可以通过DOM动态地检查和修改页面内容。
程序执行不依赖于服务器端的数据,从客户端获得DOM中的数据并在本地执行。(特点:前端html界面)
浏览器用户可以曹忠DOM中的一些对象,如URL、location等。
用户在客户端输入的数据如果包含了恶意JavaScript脚本,而这些脚本没有经过适当的过滤和消毒,应用程序可能受到基于DOM的XSS攻击。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS跨站脚本漏洞修复是保护网站免受潜在攻击的重要措施。下面是一些常见的修复方法: 1. 输入验证:对于用户输入的数据,进行严格的验证和过滤。使用白名单机制,只允许特定的字符和标签,过滤掉所有潜在的恶意脚本。 2. 输出编码:在将用户输入的数据输出到页面时,进行适当的编码操作,以防止浏览器将其解析为脚本代码。常用的编码方法包括HTML转义、URL编码等。 3. 设置HTTP头:使用安全的标头策略,如X-XSS-Protection、Content-Security-Policy等,以告诉浏览器如何处理潜在的XSS攻击。 4. Cookie安全措施:在设置Cookie时,使用HttpOnly属性,禁止通过脚本访问Cookie信息,从而减少XSS攻击的影响。 5. 安全沙箱:对于用户提供的富文本数据,使用合适的沙箱环境进行处理,限制其执行脚本的能力,确保不会造成恶意代码的注入。 6. 定期更新:保持软件和库的更新,及时修复已知的XSS漏洞。同时关注安全社区的最新消息,及时了解新的修复策略和最佳实践。 7. 高级防护措施:考虑使用Web应用防火墙(WAF)等高级安全工具来检测和阻止潜在的XSS攻击,提供额外的安全保护。 综上所述,修复XSS跨站脚本漏洞需要综合使用输入验证、输出编码、设置HTTP头、Cookie安全措施等多种方法,以加强网站的安全性。同时,定期更新软件和库,并采取高级防护措施有助于最大程度地降低XSS攻击风险。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值