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)
上一篇 2022年5月6日 下午8:20
下一篇 2022年5月6日 下午8:20


相关推荐

  • mysql varbinary 插入_Mysql中如何插入VarBinary二进制类型?

    mysql varbinary 插入_Mysql中如何插入VarBinary二进制类型?由于在数据表中定义了一个字段是 varbinary 需要利用 CAPI 进行插入操作 但是试了 N 种方法均不行 下面列举一下我们使用过的方式 bina 为 char 数组 也即待插入的二进制数据 其中可能含有各种字符 1 sprintf str INSERTINTOte id test VALUES 73 s bina intres mysql query conn ptr str

    2026年3月17日
    2
  • 机器学习sklearn之支持向量回归(SVR)

    机器学习sklearn之支持向量回归(SVR)SVM除了具有线性分类和非线性分类之外,还支持回归(SVR)。与传统的回归问题有所不同,在定义损失的时候,容忍f(x)与y之间有一定的偏差,具体推导过程如下图。由于回归问题引入了容忍偏差,松弛变量,式子相较于SVM分类更复杂一些,但是总体的求解思路是一致的,包括:定义目标函数、目标函数转换为无约束优化问题、对偶问题、SMO求解α,根据KKT条件找支持向量并计算b。上图中把W带入化简过程已省略,感…

    2022年5月31日
    282
  • Linux如何添加路由_linux添加永久路由命令

    Linux如何添加路由_linux添加永久路由命令Linux如何添加路由a.如何使用命令给Linux添加一个默认网关?缺省网关路由:默认网关就是数据包不匹配任何的路由规则,最后流经的地址关口!网关按字面意思就是网络的关口,就相当于我们办公室的大门一样,大家上班就要经过办公室的门一样。使用route-n查看网关信息,或者netstat-rn查看路由[root@machine1~]#route-nKernel

    2026年4月16日
    5
  • sql修改语句_数据透视表中的字段能不能进行修改

    sql修改语句_数据透视表中的字段能不能进行修改HSQL修改tablecolumn的语法

    2025年11月27日
    4
  • VIM 查找 返回结果个数[通俗易懂]

    VIM 查找 返回结果个数[通俗易懂]:%s/xxx//gn关键是最后的n,代表只报告匹配的个数,而不进行实际的替换。

    2022年6月22日
    79
  • Sequelize多表联合查询案例

    Sequelize多表联合查询案例一、Table:现在有两个表,A和B,关联关系:MATCH表中的job_history_id与JOB_HISTORY表中的id相关联。二、需求:查询Match表中的user_id,report_comment,以及job_history_id所关联的JOB表中的job_link,在前端显示。三、Code:1.后端首先要建立两个表的关联:MatchScoreReportModel.belongsTo(JobHistoryModel,{foreignKey:’job_history

    2022年5月18日
    55

发表回复

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

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