XSS挑战之旅1-10关

news2024/10/2 10:34:52

文章目录

          • 前言
          • 第1关
          • 第2关
          • 第3关
          • 第4关
          • 第5关
          • 第6关
          • 第7关
          • 第8关
          • 第9关
          • 第10关


前言

漏洞介绍:XSS漏洞
参考文章:XSS挑战之旅
游戏规则:触发alert()弹窗,进入下一关


第1关
  1. 进入第一关
    在这里插入图片描述

  2. 随便输入一下,观测输出,看源代码
    在这里插入图片描述

  3. 输入<script>alert(1)</script>语句进行测试,触发弹窗,进入第二关
    在这里插入图片描述

  4. 源码

    <!DOCTYPE html><!--STATUS OK--><html>
    	<head>
    		<meta http-equiv="content-type" content="text/html;charset=utf-8">
    		<script>
    			window.alert = function()  //触发alert(),进入下一关
    			{     
    				confirm("完成的不错!");
    				 window.location.href="level2.php?keyword=test"; 
    			}
    		</script>
    		<title>欢迎来到level1</title>
    	</head>
    	<body>
    		<h1 align=center>欢迎来到level1</h1>
    			<?php 
    				ini_set("display_errors", 0);
    				$str = $_GET["name"];
    				echo "<h2 align=center>欢迎用户".$str."</h2>"; //直接对传入的参数进行输出,没有过滤
    			?>
    			<center><img src=level1.png></center>
    			<?php 
    				echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
    			?>
    	</body>
    </html>
    
  5. 分析浏览器加载的结果

    	1 ------------------------------------------------
    	$str=<script>alert(1)</script>
    	<h2 align=center>欢迎用户".$str."</h2>
    	
    	2 ------------------------------------------------
    	<h2 align=center>欢迎用户<script>alert(1)</script></h2>
    	
    	3 ------------------------------------------------
    	<h2 align=center>欢迎用户
    		<script>
    			alert(1) //触发alert()函数
    		</script>
    	</h2>
    
第2关
  1. 输入<script>alert(1)</script>语句进行测试
    在这里插入图片描述

  2. 查看网页源代码
    在这里插入图片描述

  3. 补充:htmlspecialchars($str)
    在这里插入图片描述

  4. 分析浏览器加载的结果

    <input name=keyword  value="<script>alert(1)</script>">     //这里的<script>alert(1)</script>是字符串
    <input name=keyword  value="11111">"<script>alert(1)</script>">   //闭合引号,这里的<script>alert(1)</script>可以被浏览器加载
    ------------------------------------------------
    <input name=keyword  value="11111">
    "
    <script>
    	alert(1)
    </script>
    ">
    
  5. 进入下一关
    在这里插入图片描述

  6. 源代码

    <?php 
    	ini_set("display_errors", 0);
    	$str = $_GET["keyword"];
    	echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
    		<form action=level2.php method=GET>
    		<input name=keyword  value="'.$str.'">   //闭合value值
    		<input type=submit name=submit value="搜索"/>
    		</form>
    	</center>';
    ?>
    
第3关
  1. 输入<script>alert(1)</script>语句进行测试
    在这里插入图片描述

  2. 测试,看效果修改
    在这里插入图片描述

  3. payload

    <input name=keyword  value='11111' onclick='alert(1)'>
    

    在这里插入图片描述

  4. 下一关
    在这里插入图片描述

  5. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = $_GET["keyword"];
    	echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center>
    	<form action=level3.php method=GET>
    	<input name=keyword  value='".htmlspecialchars($str)."'>  //转义了再拼接进去
    	<input type=submit name=submit value=搜索 />
    	</form>
    	</center>";
    ?>
    
第4关
  1. 输入<script>alert(1)</script>语句进行测试
    在这里插入图片描述

  2. 继续测试11111' onclick='alert(1)
    在这里插入图片描述

  3. 测试11111" onclick="alert(1)
    在这里插入图片描述

  4. 下一关
    在这里插入图片描述

  5. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = $_GET["keyword"];
    	$str2=str_replace(">","",$str); //替换了< >
    	$str3=str_replace("<","",$str2);
    	echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
    			<form action=level4.php method=GET>
    			<input name=keyword  value="'.$str3.'">
    			<input type=submit name=submit value=搜索 />
    			</form>
    			</center>';
    ?>
    
第5关
  1. 输入<script>alert(1)</script>语句进行测试
    在这里插入图片描述

  2. 测试
    在这里插入图片描述

  3. 测试

    <input name=keyword  value="11"><a href="javascript:alert(1)">123</a>">
    

    在这里插入图片描述

  4. 浏览器加载效果 在这里插入图片描述

  5. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = strtolower($_GET["keyword"]);  //不能用大写过滤
    	$str2=str_replace("<script","<scr_ipt",$str); //过滤了script
    	$str3=str_replace("on","o_n",$str2);  //过滤了on
    	echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
    		<form action=level5.php method=GET>
    		<input name=keyword  value="'.$str3.'">
    		<input type=submit name=submit value=搜索 />
    		</form>
    		</center>';
    ?>
    
第6关
  1. 大写绕过
    在这里插入图片描述

  2. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = $_GET["keyword"];
    	//过滤下面这些关键字,可以用大写绕过
    	$str2=str_replace("<script","<scr_ipt",$str); 
    	$str3=str_replace("on","o_n",$str2);
    	$str4=str_replace("src","sr_c",$str3);
    	$str5=str_replace("data","da_ta",$str4);
    	$str6=str_replace("href","hr_ef",$str5);
    	//对< >转义了
    	echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
    		<form action=level6.php method=GET>
    		<input name=keyword  value="'.$str6.'">
    		<input type=submit name=submit value=搜索 />
    		</form>
    		</center>';
    ?>
    
第7关
  1. 测试
    在这里插入图片描述

  2. 测试绕过
    在这里插入图片描述
    在这里插入图片描述

  3. 双写绕过在这里插入图片描述

第8关
  1. 测试
    在这里插入图片描述

  2. 将script用实体编号绕过
    在这里插入图片描述

    <a href="javascript:alert(1)">友情链接</a>
    html编码
    <a href="java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)">友情链接</a>
    
  3. 下一关
    在这里插入图片描述

  4. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = strtolower($_GET["keyword"]);  //过滤大写
    	$str2=str_replace("script","scr_ipt",$str);  //过滤这些关键字
    	$str3=str_replace("on","o_n",$str2);
    	$str4=str_replace("src","sr_c",$str3);
    	$str5=str_replace("data","da_ta",$str4);
    	$str6=str_replace("href","hr_ef",$str5);
    	$str7=str_replace('"','&quot',$str6);  //过滤 "
    	echo '<center>
    	<form action=level8.php method=GET>
    	<input name=keyword  value="'.htmlspecialchars($str).'">   //过滤< > 
    	<input type=submit name=submit value=添加友情链接 />
    	</form>
    	</center>';
    ?>
    <?php
     	echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';  //利用点,绕过上面的限制即可
    ?>
    
第9关
  1. html的注释符号//

  2. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = strtolower($_GET["keyword"]);
    	......
    	//和上一题一样
    	......
    ?>
    <?php
    	if(false===strpos($str7,'http://')) //如果str7没有http://则返回false
    	{
    	  echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
    	        }
    	else
    	{
    	  echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
    	}
    ?>
    
  3. 测试
    在这里插入图片描述

  4. payload

    <a href="java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)//http://">友情链接</a>
    

    在这里插入图片描述

第10关
  1. 页面
    在这里插入图片描述

  2. 测试在这里插入图片描述

  3. 过滤了<>
    在这里插入图片描述

  4. 测试

    <input name="t_sort"  value="1111" onclick="alert(1)" type="hidden">
    

    在这里插入图片描述

  5. payload

    <input name="t_sort"  value="1111" onclick="alert(1)" type="text" type="hidden">
    利用HTML语言的解析顺序,使得type="text"
    

    在这里插入图片描述

  6. 源码

    <?php 
    	ini_set("display_errors", 0);
    	$str = $_GET["keyword"];  //传入参数
    	$str11 = $_GET["t_sort"];
    	$str22=str_replace(">","",$str11);  //过滤< >
    	$str33=str_replace("<","",$str22);
    	echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
    	<form id=search>
    	<input name="t_link"  value="'.'" type="hidden">
    	<input name="t_history"  value="'.'" type="hidden">
    	<input name="t_sort"  value="'.$str33.'" type="hidden">  //注入点
    	</form>
    	</center>';
    ?>
    

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

还在为数据库事务一致性检测而苦恼?让Elle帮帮你,以TDSQL为例我们测测 | DB·洞见#7

数据库用户通常依赖隔离级别来确保数据一致性&#xff0c;但很多数据库却并未达到其所表明的级别。主要原因是&#xff1a;一方面&#xff0c;数据库开发者对各个级别的理解有细微差异&#xff1b;另一方面&#xff0c;实现层面没有达到理论上的要求。 用户在使用或开发者在交…

147. SAP UI5 SmartTable 控件的使用介绍

本文来自笔者 SAP 开发技术交流知识星球内一位朋友的提问: smartfilter bar 有个输入框Cost Element绑定了cds实现value help 请问其对应的suggestion功能是通过cds的注解实现的嘛? 要回答这个问题,我们必须首先掌握 SAP UI5 SmartTable 控件的使用方式,然后才能深入探究 …

【Tensorflow】使用Tensorflow自定义模型和训练

Tensorflow的核心与NumPy非常相似&#xff0c;但具有GPU支持&#xff1b;Tensorflow支持分布式计算&#xff08;跨多个设备和服务器&#xff09;。 像NumPy一样使用TensorFlow 运算符是在Python 3.5 中添加的&#xff0c;用于矩阵乘法&#xff0c;等效于 tf.matmul() 函数。…

C++数据结构迷宫哈希表二叉树

C数据结构迷宫哈希表二叉树 《数据结构》应用系统设计——迷宫问题 问题描述:设计算法求出并显示从入口点到出口点可沿八个方向前进的一条通路&#xff0c;或显示没有通路 难度:易 基本要求: (1)键盘(或文件)输入迷宫行数m和列数n&#xff0c;计算机随机生成迷宫(或从文件读入…

robots (攻防世界)

前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 题目描述 进入网址 啥也没有 解题工具: 额...浏览器&#xff1f; (可能还需要百度) 问题解析: 科普时间到 robots协议也称爬虫协议、爬虫规则等, 是指网站建立一个robots.txt文件来告诉搜索引擎哪些…

安卓 手机硬改 工具下载 一键新机 改串 抹机 root隐藏 改串号MEID imei SN信息 工具教程分享

一键新机、模拟机型、一键备份、还原APP数据、ROOT隐藏、修改数据、保护隐私 一键新机 超过3000机型一键模拟、无束缚轻松做注册、激活、留存 安卓/IOS(进行中) 支持目前最流行的机型&#xff0c;安卓全机型兼容&#xff0c;我们坚持领先一步 操作简单 适合脚本作者 群控…

为了验证某些事,我实现了一个toy微前端框架【万字长文,请君一览】

众所周知微前端是企业中前端发展的必经之路。 我司搭建了自己的微前端脚手架工具&#xff0c;它将项目变成了“多页应用”&#xff0c;跳转方式由 location.href 这类api进行。所以笔者之前在想&#xff1a;这种方式跳转能不能有动画效果呢&#xff1f; 在“上层建筑”中进行“…

【文件同步和备份软件】上海道宁为您带来GoodSync软件,让您轻松备份和同步您的文件

GoodSync发布于2006年 是一种简单可靠的文件同步和 备份解决方案 使用GoodSync可以轻松备份和 同步您的文件 确保您的文件绝对不会丢失 GoodSync企业版是 为商用设计的 数据备份、同步和恢复软件 适用于所有平台、项目或业务环境 保护我们的商业数据 开发商介绍 Siber…

golang开发相关面试题

目录 go有哪些数据类型? 方法与函数有什么区别? 方法中值接收者与指针接收者的区别是什么? 函数返回局部变量的指针是否安全? 函数参数传递值是值传递还是引用传递? defer关键字的实现原理? 内置函数make和new的区别? slice底层实现原理? array与slice的区别是…

GICv3和GICv4虚拟化

本文档翻译自文档Arm Generic Interrupt Controller v3 and v4 - Virtualization 1 虚拟化 Armv8-A选择性的支持虚拟化。为了完成该功能&#xff0c;GICv3也支持虚拟化。GICv3中对虚拟化的支持包括如下功能&#xff1a; CPU Interface寄存器的硬件虚拟化产生和发送虚拟中断的…

pytorch深度学习实战lesson14

第十四课 丢弃法&#xff08;Dropout&#xff09; 目录 理论部分 实践部分 从零开始实现&#xff1a; 简洁实现&#xff1a; 理论部分 这节课很重要&#xff0c;因为沐神说这个丢弃法比上节课的权重衰退效果更好&#xff01; 为什么期望没变&#xff1f; 如上图所示&#…

java main方法控制日志级别

背景&#xff1a; 今天想用main方法去调用http请求&#xff0c;结果已经没什么问题了&#xff0c;但是打印了一大堆Http业务内部的日志信息&#xff0c;特别挡路&#xff0c;导致想看到的业务输出看不到&#xff0c;所以经过多方求证&#xff0c;进行了日志等级处理。 默认情…

【Pytorch with fastai】第 5 章 :图像分类

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

电商项目缓存问题的解决方案(初步)

内容分类 容量规化 架构设计 数据库设计 缓存设计 框架选型 数据迁移方案 性能压测 监控报警 领域模型 回滚方案 高并发 分库分表 优化策略 负载均衡 软件负载 nginx&#xff1a;它自身的高可用是用lvs去保证。 下单需要登录 > 需要Session > 分布式Ses…

好书赠送丨海伦·尼森鲍姆著:《场景中的隐私——技术、政治和社会生活中的和谐》,王苑等译

开放隐私计算 收录于合集#书籍分享1个 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神&#xff0c;专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播&#xff0c;愿成为中国 “隐私计算最后一公里的服…

[附源码]java毕业设计基于javaweb电影购票系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

公众号运营建议与反思分享,建议收藏

正所谓有总结才会有成长&#xff0c;公众号运营也是如此。 公众号运营不是一朝一夕的事情&#xff0c;经过岁月的洗礼和千锤百炼&#xff0c;也总归是有了自己的一套经验和技巧。 对于公众号运营有什么建议&#xff1f;值得大家反思什么&#xff1f;今天伯乐网络传媒就来给大…

Boost升压电路调试

背景&#xff1a; 项目用到了一款升压电路&#xff0c;将12V升压到32V&#xff0c;电流要求有12A&#xff0c;最大18A。 设计的方案是使用Boost Controller 外置MOS来实现。 选定的Controller芯片为Maxim的MAX25203。 问题&#xff1a; 回板后进行调试&#xff0c;在不使能…

活动预告|“构建新安全格局”专家研讨会即将开幕

应急管理承担着防范化解重大风险、及时应对处置各类突发事件的重要职责&#xff0c;担负保护人民群众生命财产安全和维护社会稳定的重要使命。过去一年是我国应急管理体系和能力建设经受严峻考验的一年&#xff0c;也是实现大发展的一年。 11月17日&#xff0c;由中央党校科研部…

Python简单实现人脸识别检测, 对某平台美女主播照片进行评分排名

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 开发环境: Python 3.8 Pycharm 2021.2 模块使用: 第三方模块 requests >>> pip install requests tqdm >>> pip install tqdm 简单实现进度条效果 自带模块 os base64 采集代码 导入模块 # 数…