XSS漏洞介绍及反射型XSS

XSS漏洞介绍及反射型XSS什么是XSS攻击:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制–例如同源策略(sameoriginpolicy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。XSS分类:类型A,本地利用漏洞,这种漏…

大家好,又见面了,我是你们的朋友全栈君。

什么是XSS攻击:
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制–例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。

XSS分类:
类型A,本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
(也就是web开发人员在编写网页脚本时无意间造成的错误)
类型B,反射式漏洞,这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
(简单解释一下大致意思,当用户在网站的地址栏输入URL,从服务器端获取到数据时,网站页面会根据返回的信息而呈现不同的返回页面,如果这个时候恶意用户在页面中输入的数据不经过验证且不经过超文本标记语言的编码就录入到脚本中,就会产生漏洞)
类型C,存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。这种类型的漏洞 可以使恶意用户将javascrip永久性的存储在数据库中。

XSS攻击流程大致如下:
1,发现存在webXSS漏洞web,
2,恶意用户通过该漏洞将javascrip插入到该web的脚本中,等待或欺骗新用户去访问。当用户打开此含有XSS漏洞的页面,脚本运行。如果这个代码是用来获取用户的个人信息,就返回一个信息输入页面,当用户将个人用户信息输入后,当窃取到用户信息后,将该信息发送到恶意用户自行搭建的获取信息的接口。
在这里插入图片描述

XSS漏洞形成原因:
在这里插入图片描述

介绍完了XSS漏洞的基本含义。作为测试漏洞是否存在的一方,当然要知道如何去寻找漏洞。
1。首先寻找漏洞输入点,一般在客户端界面显示为留言板或查询接口等。
2。当找到这样类似的漏洞输入点后,并不急于去构造相应的payload,而是通过输入一组字符外加一个特殊的识别符(可以是数字组合),提交后查看返回的源码,看是否服务器端做出了上述所说的处理即是否从客户端提交的数据有做相应的过滤或对返回的数据做相应的代码转译。而特殊的识别符就是观察点。如果输入的识别符被原封不动的返回,就说明有很大的几率存在XSS漏洞。
3。最后,根据输出点所在的html译文或者javascrip代码的上下文去构造闭合,最后构造payload、

开始渗透演示,首先当然是要找到一个存在XSS漏洞的网页。以下的演示为渗透练习平台上的演示。
首先检查输入端口是否存在XSS漏洞,主要是为了从返回查看输入是否被过滤掉在这里插入图片描述
返回
在这里插入图片描述
从返回提示看不出任何信息,所以查看页面代码,然后control+F后在弹出的搜索框里输入刚刚我们输入的特殊提示符‘6666’在这里插入图片描述
在这里插入图片描述
有上图可知,上面的提示符没有经过任何处理直接返回了。是否这里就存在漏洞呢,尝试着构造payload
重新返回输入端,构造jabascripz
并且这里是有长度限制的,但是,如果这种限制仅仅只是放在了前端,那起不到丝毫的作用。我们打开开发者工具在这里插入图片描述
找到选择器然后将输入限制更改为20000在这里插入图片描述
然后重新构造闭合在这里插入图片描述
可以看见反射型字符在这里插入图片描述
还是打开网页源代码,查看一下在这里插入图片描述
接着我们刷新输入页面,应为是反射型的XSS,所以之前我们输入的代码并不会被保留在这里插入图片描述
接着看一下后端的代码,大致如下在这里插入图片描述
可以看见是没做任何的防范措施的。
则从XSS漏洞的发现到利用XSS反射型漏洞的大致过程就大体地演示完成。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138845.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • grep awk sed_shell grep -v

    grep awk sed_shell grep -vRedflagLinux备份软件测试情况一、测试环境1.备份服务器硬件平台A.    CPU B.    内存C.    硬盘2.备份客户端硬件平台A.    CPU B.    内存C.    硬盘3.软件平台A)     操作系统RedFlagDC4.1RedhatAS4Windows2003EnterpriseServerB)     Domino数据库Domin

    2022年8月20日
    5
  • java二维数组初始化的三种方式「建议收藏」

    java二维数组初始化的三种方式「建议收藏」有些知识觉得很简单,但其中一些细节性的东西我们未必知道,比如说数组的定义以及初始化的方式。下面主要介绍下二位数组初始化的三种方式1、定义数组的同时使用大括号直接赋值,适合数组元素已知的情况2、定义二维数组的大小,然后分别赋值3、数组第二维的长度可变化//第一种方式:定义的同时大括号直接复制int[][]array1={{1,3,1},{…

    2022年5月9日
    89
  • jenkins安装和简单配置

    jenkins安装和简单配置

    2020年11月19日
    172
  • C语言描述 动态规划 背包问题

    C语言描述 动态规划 背包问题动态规划作为不同于其他类型的问题,有着它自己的解题思路以及模型,以下将围绕模型以及解题思路两方面进行讲解。1.模型:有已知推到未知,是我们常用的解题思路,好比数独中如果我们有了1~8那么剩下的格子必然是9了。动态规划也是这样的思路,眼下我们有一堆货物和一个容量有限的背包,那么如何装才能利益最大化便是我们需要考虑的问题。也就是背包问题。仔细思考,不难发现,每个物品都只有0与1(0表示不装,1表示装入)两个状态,那么一串二进制数就可以表示物品的装配方案(如0101表示只带上第2、4件物品)由此必有2

    2022年7月26日
    4
  • 十大移动开发平台

    十大移动开发平台1.PutdbWebBuilder    WebBuilder是一款开源的可视化移动Web应用开发和运行平台。基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发;高效、稳定和可扩展的特点,适合复杂企业级应用的运行;跨平台、数据库和浏览器的架构,适应复杂的服务器和客户端环境;包括智能数据库访问在内的多项先进技术,使应用系统的开发更快捷和简单。 …

    2022年5月31日
    42
  • acwing-91. 最短Hamilton路径(状态压缩dp)

    acwing-91. 最短Hamilton路径(状态压缩dp)给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数 n。接下来 n 行每行 n 个整数,其中第 i 行第 j 个整数表示点 i 到 j 的距离(记为 a[i,j])。对于任意的 x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]≥a[x,z]。输出格式输出一个整数,表示最短 Ha

    2022年8月9日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号