xss.haozi.me

news2024/11/15 13:31:56

0x03 审查源码我们发现,括号, 方括号都被过滤了

这段代码是一个简单的 JavaScript 函数,名为 `render`。它接受一个字符串 `input` 作为参数,并返回一个新的字符串,其中所有圆括号 `(` 和 `)` 都被移除了。

函数内部定义了一个正则表达式 `stripBracketsRe`,它匹配所有的圆括号字符。然后使用 `String.prototype.replace` 方法和这个正则表达式来替换字符串中的所有圆括号为空字符串(即删除它们)。最后,函数返回处理后的字符串。

例如,如果你调用 `render("Hello (world)!")`,它将返回 `Hello world!`。

0x06

函数的工作流程如下:

  1. 使用 String.prototype.replace 方法和正则表达式 /auto|on.*=|>/ig 来替换 input 字符串中的特定内容。这个正则表达式匹配以下内容:

    • auto:字面意义上的 "auto" 字符串。
    • on.*=:以 "on" 开头,后面跟着任何字符(. 表示任何字符,* 表示前面的字符可以出现零次或多次),直到遇到等号 "=" 的字符串。
    • >:字面意义上的大于号 ">"。

    i 修饰符表示不区分大小写,g 修饰符表示全局匹配,即匹配字符串中的所有可能实例。

  2. 所有匹配到的字符串都会被替换为下划线 _

  3. 函数返回一个新的字符串,该字符串是一个 <input> 元素,其 value 属性被设置为 1,并且 input 字符串被插入到 <input> 元素的属性中。

分析regex表达式:

/auto|on.*=|>/ig

它匹配了: auto 、以on开头且以=结尾的字符串、 >

所以过滤了autofocus和onerror等事件, 以及防止input标签被闭合

但是它并没有匹配换行符, 可以通过换行来绕过匹配

type="image" src="" onerror
=alert(1)

0x07

这题也是正则表达式,  将匹配到的替换为空:
分析正则表达式:
 /<\/?[^>]+>/gi

这里分为三部分来分析:  /<\/?[^>]+>/gi
<\/?
   \转义符与/结合,  从而转义了/, 进而含义是匹配:  </
   再加上+ (匹配前面的子表达式一次或多次), 所以是匹配: < 或者 </
[^>]+
   首先要明白,  中括号的用法:  [abc] => 匹配abc中的任意一个;  
   然后^符号的两种用法:
    1.  限定开头:  比如, /^A/会匹配"An e"中的A,但是不会匹配"ab A"中的A
    2.  取反(仅处于中括号中成立): 比如,[^a-zA-Z0-9]表示 “找到一个非字母也非数字的字符”。
最后是+的含义:匹配前面的子表达式一次或多次。
所以,总的来说,[^>]+ 匹配了除了^的任意字符的一次或者多次
>
单纯匹配>。
总的表达式就是,匹配:  </ 任意字符 >,  而且 /i 过滤了大小写
匹配了尖括号<>开头结尾的字符串替换为空.可以通过少输入一个>来绕过正则,但仍然可以执行.

函数的工作流程如下:

  1. 定义了一个名为 stripTagsRe 的正则表达式,用于匹配 HTML 标签。这个正则表达式可以匹配:

    • 开始标签 < 后面跟着任意不是 > 的字符,直到 > 的序列。
    • 结束标签 </ 后面跟着任意不是 > 的字符,直到 > 的序列。

    <> 是 HTML 标签的定界符,而 gi 修饰符中的 g 表示全局匹配(即匹配整个输入字符串中的所有标签),i 表示不区分大小写。

  2. 使用 String.prototype.replace 方法和 stripTagsRe 正则表达式来替换 input 字符串中的所有 HTML 标签为空字符串(即删除它们)。

  3. 函数返回一个新的字符串,该字符串是一个 <article> 元素,其内容是处理后的 input 字符串。

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

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

相关文章

三级_网络技术_58_应用题

一、 请根据下图所示网络结构回答下列问题。 1.填写RG的路由表项。 目的网络/掩码长度输出端口__________S0&#xff08;直接连接&#xff09;__________S1&#xff08;直接连接&#xff09;__________S0__________S1__________S0__________S1 (2)如果在不改变路由表项的前提…

notepad++将换行替换成空

将多行里的换行置为一行&#xff0c;例如将下面的6行置为3行 crrlH打开替换框&#xff0c; 替换目标为【,\r\n】&#xff0c;替换成空&#xff0c;勾选循环查找和 正则表达式&#xff0c;全部替换即可。 替换后的效果

三级_网络技术_59_应用题

一、 请根据下图所示网络结构回答下列问题。 1.填写RG的路由表项。 目的网络/掩码长度输出端口__________S0&#xff08;直接连接&#xff09;__________S1&#xff08;直接连接&#xff09;__________S0__________S1__________S0__________S1 2.如果需要监听该网络内子网10…

SpringBoot 项目集成 xxl-job

1. xxl-job 官网 https://www.xuxueli.com/xxl-job/ 2. git 拉取 xxl-job 源码 2.1 源码仓库地址 https://github.com/xuxueli/xxl-job http://gitee.com/xuxueli0323/xxl-job 2.2 git 拉取源码 git clone https://gitee.com/xuxueli0323/xxl-job.git 2.3 git拉取源码时&…

CSS实现DIV水平展示

CSS实现DIV水平展示 css代码 .container {display: flex; /* 使用 Flexbox */justify-content: space-between; /* 在主轴上均匀排列 */width: 100%; /* 设置容器宽度 */ } .box {flex:1; height:100px; }HTML代码 <div class"container"><div class&quo…

高效智能的AI人工智能对话系统源码,具备强大的自然语言处理能力 带完整的安装代码包以及搭建部署教程

系统概述 随着互联网的普及和大数据时代的到来&#xff0c;人们对信息获取、处理及交互的需求日益增强。传统的界面操作已难以满足快速、便捷、人性化的服务需求&#xff0c;而自然语言处理&#xff08;NLP&#xff09;技术的突破&#xff0c;为构建更加智能的对话系统提供了可…

MASt3R:从3D的角度来实现图像匹配(更新中)

Abstract 图像匹配是 3D 视觉中所有性能最佳算法和pipeline的核心组件。 然而&#xff0c;尽管匹配从根本上来说是一个 3D 问题&#xff0c;与相机姿态和场景几何结构有内在联系&#xff0c;但它通常被视为一个 2D 问题。因为匹配的目标是建立 2D 像素字段之间的对应关系&#…

达梦数据库的系统视图v$ifun_arg

达梦数据库的系统视图v$ifun_arg 在达梦数据库&#xff08;DM Database&#xff09;中&#xff0c;V$IFUN_ARG 系统视图提供了关于存储函数&#xff08;或存储过程&#xff09;参数的详细信息。它是与函数参数相关的系统表&#xff0c;可以帮助数据库管理员和开发人员查看和管…

【重学MySQL】四、关系型数据库设计规则

【重学MySQL】四、关系型数据库设计规则 表、记录、字段设计规则表设计规则记录设计规则字段设计规则 表的关联关系一对一关系&#xff08;One-to-One Relationship&#xff09;一对多关系&#xff08;One-to-Many Relationship&#xff09;多对多关系&#xff08;Many-to-Many…

HTTP代理支持UDP协议吗?

在网络通信中&#xff0c;HTTP代理和UDP协议是两个常见但功能和用途不同的技术。本文将详细探讨HTTP代理是否支持UDP&#xff0c;以及在什么情况下可以实现两者的结合。 HTTP代理的基本概念 HTTP代理是一种代理服务器&#xff0c;用于处理HTTP请求和响应。它在客户端和目标服…

【话题】全能型AI与专精型AI:未来之路

目录 AI模型&#xff1a;追求全能还是专精&#xff1f; 引言 方向一&#xff1a;AI模型的全面评估和比较 评估指标 应用场景考量 方向二&#xff1a;AI模型的专精化和可扩展性 平衡专精化与可扩展性 模块化设计 方向三&#xff1a;AI模型的合理使用和道德规范、 遵循道德规范 加…

sql-labs56-60通关攻略

第56关 一查询数据库 ?id-1)union select 1,2,database()-- 二.查表 ?id-1)union select 1,group_concat(table_name),3 from information_schema.tables where table_schemasecurity -- 三.查看users表中列名 ?id-1)union select 1,group_concat(column_name),3 from…

9.03.

#include <iostream>using namespace std;/*-------------------------------------------------------------*/ class RMB {static int count; private:int yuan;int jiao;int fen; public://获得当前RMB数量static int RMBNUM(){return count;}RMB(){count;}RMB(int yu…

鸿蒙模拟器篇

1、首先需要在华为官网申请模拟器资格&#xff0c;附链接&#xff1a;鸿蒙模拟器&#xff08;HarmonyOS Emulator&#xff09;Beta活动申请 填写相关信息提交申请&#xff0c;申请结果状态在个人中心 — 我的活动页面查看 2、申请通过之后开始下载模拟器 注意&#xff1a…

Kafka:浅谈对Kafka的认识

Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统&#xff0c;最初由 LinkedIn 公司开发&#xff0c;使用Scala 语言编写&#xff0c;目前是 Apache 的开源项目。 一、Kafka的相关概念 1、Topic 每条发布到Kafka集群的消息都有一个类别&#xff0c;这个类别被称为To…

宝藏!《联盟自控强化班洗髓题库》(青龙篇) 1-9章:甄选部分

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;初试《自控强化班洗髓题库》(青龙篇)。 目录 Part1&#xff1a;资料封面&目录 Part2&#xff1a;资料各个章节具体内容 第1章 自动控制的一般概念 第2章 控制系统的数学模型 第3章 线性系统的时域分析 第4…

QT计算圆的面积

今天实践一下刚学的qt知识&#xff0c;那么我们使用QT最重要的就是信号与槽的使用&#xff0c;那么今天我们就来实践一下。 计算圆的面积 1.创建项目 这个就不用多说了&#xff0c;大家就正常创建一个QWidget的项目就好了 2.编辑UI文件 我们这样创建一个我们的UI项目文件&a…

Nginx部署前端vue项目操作步骤和方法~小皮

部署前端Vue.js项目到Nginx上&#xff0c;是开发流程中至关重要的一步&#xff0c;它意味着将静态文件托管在Web服务器上&#xff0c;使应用程序能够被用户访问和交互。下面将详细介绍如何使用Nginx部署前端Vue项目的操作步骤和方法&#xff1a; 准备构建Vue项目 安装Node.js和…

视联动力数字科技新成果闪耀2024数博会

在2024年的8月28日至30日&#xff0c;贵阳举办的中国国际大数据产业博览会上&#xff0c;视联动力带来了一系列引人注目的技术和创新应用。 这场为期三天的展览会展示了公司在数字经济发展领域的最新成就&#xff0c;特别是国产通信协议技术方面的进展。 视联动力重点展出了算…

html+css网页设计 合十文化2个页面

htmlcss网页设计 合十文化2个页面 ui还原度90% 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 …