php双写绕过,PHP preg_系列漏洞小结

2023-11-06

最近看 P 神以前写的文章,其中在 3 个参数的回调函数中提到了 preg_replace /e 命令执行,对这块不是很熟悉的我特此写这篇文章总结学习一下。

preg_matchint preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

preg_match 函数用于执行一个正则表达式匹配

参数

说明

$pattern

要搜索的模式,字符串形式。

$subject

要搜索检测的目标字符串

$matches

如果提供了参数matches,它将被填充为搜索结果 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。

$flags

$offset

可选参数 offset 用于指定从目标字符串的某个未知开始搜索(单位是字节)。

preg_replace

preg_replace — 执行一个正则表达式的搜索和替换

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed

搜索subject中匹配pattern的部分, 以replacement进行替换。

参数

说明

$pattern

要搜索的模式,可以是字符串或一个字符串数组

$replacement

用于替换的字符串或字符串数组

$subject

要搜索替换的目标字符串或字符串数组

$limit

可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)

$count

可选,为替换执行的次数

如果subject是一个数组, preg_replace()返回一个数组, 其他情况下返回一个字符串。

如果匹配被查找到,替换后的subject被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL 。

场景1 嵌套双写绕过

依然来使用 XSS 的例子:

error_reporting(0);

$name = $_GET["name"];

$name = preg_replace('/script/i','',$name);

echo $name;

?>

虽然使用了 /i 匹配大小写字母,但是逻辑有问题,只是仅仅将关键词替换为空,可以使用嵌套双写绕过:

http://x.x.x.x/xxx.php?name=alert(2333)

类似这种过滤逻辑,在 str_replace 函数中也常见到:

$name = str_replace( 'script', '', $_GET[ 'name' ] );

嵌套双写的加固方法:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php双写绕过,PHP preg_系列漏洞小结 的相关文章

  • 阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)

    前文我们介绍了基于Arnold置乱的数字图像加密算法的两种图像置乱变换 今天我们介绍的是另外三种图像置乱变换 基于骑士巡游的图像置乱变换 基于Arnold变换的数字图像置乱和基于仿射变换的置乱变换 一 基于骑士巡游的图像置乱变换 所谓骑士巡
  • 服务器文件远程复制迁移命令

    文件远程复制迁移命令 两个系统进行远程迁移的时候 除了通过ftp工具 或者先下载在上传这种方式 如果两个服务器网络互通的话 也可以通过命令直接进行复制迁移 方便高效 命令可以进行文件单独迁移 可以对整个目录进行迁移 scp P 22 r 源
  • AlertDialog 修改文本内容的颜色

    最近遇到一个问题在联想A858T白色手机上测试如下AlertDialog时 AlertDialog背景默认为白色 title message为黑色 但是CheckBox的Text却为白色 final CheckBox cb new Chec
  • 1.VS软件错误代码C3848

    VS软件错误代码C3848 VS2022不知道怎么解决这个错误 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3848 具有类型 const Keycmp 的表达式会丢失一些 const volatile 限定符以调用 bool
  • 10000条数据怎么插入比较快

    具体方案 要快速插入10000条数据 以下是一些可行的方法 开启事务 JDBC直接处理 开启事务和关闭事务 耗时差距5倍左右 并且这个倍数会随着数据量的增大而增大 因为在未开启事务时 更新10000条数据 就得访问数据库10000次 导致每
  • FPGA跨时钟域信号处理之亚稳态问题

    FPGA跨时钟域信号处理之亚稳态问题学习笔记 将慢速时钟域 PC 机中的波特率 系统中的 rx 信号同步到快速时钟域 FPGA 中的 sys clk 系统中 所使用的方法叫电平同 步 俗称 打两拍法 跨时钟域会导致 亚稳态 metastab
  • Sonar Java默认的扫描规则

    规则如下 equals should not be used to test the values of Atomic classes equals 方法不应该用在原子类型的数据上 如 AtomicInteger AtomicLong At
  • 宏观内存信息统计

    proc meminfo统计信息解释 linux下内存的统计信息的解释 例如 cat proc meminfo MemTotal 1031016 kB MemFree 13548 kB MemShared 0 kB Buffers 9806
  • 微信小程序(5)-新闻页面制作(1)

    制作如图所示新闻页面 newspage 之导航栏步骤如下 1 在newspage js中定义数据 数据都放在 js中的data内 data newsTitles 要闻 国际 国内 娱乐 体育 科技 视频 2 在newspage wxml中定
  • java.text.ParseException分析

    1 错误 java text ParseException Unparseable date 2018 1 22 14 55 21 2 java text ParseException Unparseable date 2018 1 22
  • C语言操作符详细介绍

    目录 前言 一 原码 反码 补码的基础概念 1 原码 2 反码 3 补码 二 原码 反码 补码的计算方法 1 原码 2 反码 3 补码 三 算术操作符 四 移位操作符 1 左移操作符 移位规则 2 右移操作符 移位规则 1 逻辑移位 2 算
  • 服务器pci光卡 系统不显示,工控机系统读取不到PCI卡的原因及解决办法

    有一次 东田一个客户谈到了以前的工控机出现了系统读取不到PCI卡的问题 其实这样的问题并不常见 但既然存在这样的问题 我们就一起来看看吧 故障的分析和处理 1 先看看在系统设备管理器中有无这个PCI设备的存在 若有 则看驱动和中断是否正常
  • 骚年~来一起撸一撸,这些面试必问的知识

    长按上方小姐姐
  • openGL之API学习(一九六)纹理单元名(纹理对象)和纹理单元的关系

    glGenTextures产生的是一个比较小的整数id 纹理单元名 glActiveTexture激活的是纹理单元号 GL TEXTUREi 它们二者的关系为GL TEXTUREi GL TEXTURE0 id glBindTexture使
  • 【机器学习实战】10、利用PCA来简化数据

    文章目录 13 1 降维技术 13 1 1 主成分分析 PrincipalComponentAnalysis PCA 13 1 2 因子分析 Factor Analysis 13 1 3 独立成分分析 Independent Compone
  • QT如何生成Release版本(得到exe运行DLL)

    1 点击左侧工具栏的 项目 在 构建设置 中 将 编辑构建设置 更改为 Release 特别要注意 概要 中的 Show build 选择框 将勾选去掉 此处主要是选择将生成的文件放置在何处 2 已经生成exe之后 将exe文件单独放置在一
  • 测试开发工程师需要具备的性格

    1 细心 2 耐心 3 时间观念 4 表达能力 5 好奇心 多问几个为什么
  • 【华为OD机试】组成最大数(C++ Python Java)2023 B卷

    题目描述 小组中每位都有一张卡片 卡片上是6位内的正整数 将卡片连起来可以组成多种数字 计算组成的最大数字 输入描述 号分割的多个正整数字符串 不需要考虑非数字异常情况 小组最多25个人 输出描述 最大的数字字符串 用例1 输入 22 22
  • 在虚拟机上安装Ubuntu系统

    打开VMware 点击文件新建虚拟机 选择典型 下一步选择安装系统iso映像文件 安装位置我选择的E盘 保持默认 下一步 点击完成 运行系统后 上下左右键操作 选择中文 简体 回车 选择安装Ubuntu服务器版 语言选择中文 简体 选是 中

随机推荐

  • 字符集详解(一看就懂系列)

    原文请参考 https blog csdn net qq 28098067 article details 53486032 一 编码历史与区别 一直对字符的各种编码方式懵懵懂懂 什么ANSI UNICODE UTF 8 GB2312 GB
  • Qt图形视图框架:QGraphicsScene详解

    一 描述 1 场景提供了一个用于管理大量2D图形项的平面 该类充当图形项的容器 它与视图一起用于可视化2D曲面上的图形图形项 2 场景没有自己的视觉外观 只负责管理图形项 3 场景的最大优势之一就是其快速有效地定位图形项的能力 即使场景中有
  • React导入json数据

    本文提供两种方式 读者根据自己的需要进行选择 1 第一种方式 直接import json文件 这种方式依赖于 json loader模块 npm install json loader https www npmjs com package
  • gs104d键盘使用问题记录

    键盘官网说明 官网说明书 有线开关拨到off 无线拨到on 蓝牙连接 1 开关拨OFF 装电池 拨到ON 指示灯闪一下 只是闪一下不是常亮 2 FN加Q指示灯闪一下 空格右边FN按住再按住P长按 指示灯闪烁 松手 第一个设备打开蓝牙添加搜索
  • iOS开发Google Protocol Buffer 的使用(三)

    pragma mark 获取数据 void getData NSUserDefaults defaults NSUserDefaults standardUserDefaults NSString subServerUrl defaults
  • 使用vscode开发C51项目

    使用vscode开发C51项目 头文件包含 settings json中要加入51的头文件 C Cpp default includePath workspaceFolder C Keil v5 C51 INC 扩展类型问题 遇到问题 sb
  • 憨批的语义分割重制版3——Pytorch 搭建自己的PSPNet语义分割平台

    憨批的语义分割重制版3 Pytorch 搭建自己的PSPNet语义分割平台 学习前言 什么是PSPNet模型 代码下载 PSPNet实现思路 一 预测部分 1 主干网络介绍 2 加强特征提取结构 3 利用特征获得预测结果 二 训练部分 1
  • 【VQ-VAE-2论文精读】Generating Diverse High-Fidelity Images with VQ-VAE-2

    VQ VAE 2论文精读 Generating Diverse High Fidelity Images with VQ VAE 2 0 前言 Abstract 1 Introduction 2 Background 2 1 Vector
  • 【正点原子STM32连载】第二十四章 高级定时器PWM输入模式实验 摘自【正点原子】APM32F407最小系统板使用指南

    1 实验平台 正点原子stm32f103战舰开发板V4 2 平台购买地址 https detail tmall com item htm id 609294757420 3 全套实验源码 手册 视频下载地址 http www openedv
  • 清除TortoiseGit保存密码

    找到C Users Administrator目录下的 gitconfig文件 该文件为隐藏文件 解除隐藏后即可看到 删除 credential helper manager 参考链接 另一种方法清除密码 https www cnblogs
  • 2022年互联网行业的寒流

    最近很多小伙伴私信我说到2022年是他从业以来找工作最艰难的一次 企业各种卷 BAT等一线大厂释放人才 毕业等各种裁人政策不断 每年几百万人应届毕业生 包括985 211 研究生 博士 硕士等不断的涌入 小公司面临倒闭 大公司面临裁人让30
  • 《软件工程》第5章系统建模

    系统建模就是建立系统抽象模型的过程 其中每一个模型表示系统的一个不同的视角或观点 系统建模现在通常意味着在UML中的图类型基础上使用某种图形化的表示法表示系统 然而 也有可能要开发系统的形式化 数学 模型 通常将其作为详细的系统规格说明 在
  • Qt常用小部件

    常用小部件 QLabel 常用来显示文本 数字 图片 gif动图 新建桌面应用程序 项目名testQLabel 基类QWidget 类名Widget 勾选创建界面文件 类构造函数中添加如下代码 准备好一个图片及gif格式动图 ui gt s
  • cookie,session,token之间的关系

    今天和大家聊一下关于 Cookie Session Token 的那些事儿 这是我的一个读者朋友面试微信的实习岗位时遇到的 在此和大家分享一下 话不多说 直接开车 1 网站交互体验升级 作为网友的我们 每天都会使用浏览器来逛各种网站 来满足
  • nginx做yum源

    我这边环境是原先有个nginx只是做了代理转发 现在需要在通过nginx做yum源方便后期安装源 1 原先的配置代理转发 为不影响原先配置及端口 在http中最末尾加 include local nginx conf d conf 加载其它
  • (UI)Android自定义图片裁剪

    具体UI效果如下 思路 绘制5个rect 其中四个为半透明深色背景 一个为透明背景的裁剪内容框 之前也考虑过用region 但是自测的时候 发现两个region之间颜色会相互影响 可能是我代码问题 有了解的小伙伴可以指导一下哈 就用了5个R
  • jQuery 入门教程(36): jQuery UI Menu 示例

    jQuery Menu 组件可以应用到任何具有父 子关系的元素 就其变为菜单 但通常使用u gt li 如果你希望使用除 ul li 之外的元素 可以通过menus 来配置 下例使用缺省的 ui和 li 菜单支持选择事件select 因此可
  • YoloV5源码部分注释解读(ultralytics版本)(yolo.py)

    yolo py的主要作用是构建yolov5的模型 而且这个yolo py文件可以单独执行 这里主要对目标检测中的相关类进行了注释解读 分割等没有用到的暂时没有注释 第一部分 导入包 配置路径等 第二部分 程序入口 执行程序 在这部分中 创建
  • el-input输入框涉及到scope的校验问题

    需求描述 在el table中 对每一行数据的数量进行校验 对于数量要用el input输入框进行输入数值 校验主要涉及 每次输入的时候都要清空el input输入框的数值 输入值只能为数字 并且要对输入的数量进行判断是否超过库存的最大数量
  • php双写绕过,PHP preg_系列漏洞小结

    最近看 P 神以前写的文章 其中在 3 个参数的回调函数中提到了 preg replace e 命令执行 对这块不是很熟悉的我特此写这篇文章总结学习一下 preg matchint preg match string pattern str