php特性

文章目录

  • 函数特性
    • 匹配数组报错
    • 进制转换绕过
    • 正则表达式匹配换行
    • 绝对路径绕过
  • 弱类型语言隐式转换
      • 核心概念
      • 转换规则
  • 运算符优先级

函数特性

匹配数组报错

在这里插入图片描述
以此为例,如果传入参数是一个数组,则preg_match()函数报错返回0,完成绕过,而intval()函数只关心数组的元素数量,其中有元素则返回1,无元素则返回0.
在这里插入图片描述
同样的道理,MD5函数在处理数组时会报null

payload:a[]1=&b[]=2
注意是post请求

进制转换绕过

在这里插入图片描述

  • 接下来是类似的原理,但是需要绕过判断而让函数正常执行,显然数组匹配不行,那么有没有其他方法呢?
    继续了解intval函数,发现intval($num,0)是将num转为十进制形式,而num在与4476做判断时,不会自动进行进制的转换,利用这一点采取十六进制即可绕过
  • 在此基础上,如果我们绕过的限制继续增加
  • 在这里插入图片描述
  • 字符被禁用,所以十六进制不可行,采用八进制010574,但是strpos会返回字符串中第一个值为0的字符的位置,如果第一个字符是0,取非后变成1,将无法完成绕过,因此我们采取在八进制前加上空格
payload:%20010754

正则表达式匹配换行

在这里插入图片描述
在这个例子中,我们在第一个if中需要从开头到结尾是php,i为不区分大小写,m为每一行都要进行匹配检测,只要其中一行满足即可,再第二个if中,我们只看第一行满不满足,所以可以基于此特性在第一行构造

cmd=f%0aphp
%0a是换行符的url编码形式

绝对路径绕过

在这里插入图片描述

直接给flag.php会被过滤,我们猜测flag所在的绝对路径
\var\www\html\flag.php

这样在进行比较时能顺利完成绕过

弱类型语言隐式转换

核心概念

PHP 是 弱类型语言(动态类型),意味着变量的数据类型 不会固定,且在不同操作中会自动隐式转换类型。字符串和整数比较时,PHP 会先将字符串转换为整数,再进行数值比较。

转换规则

当字符串和整数比较时,PHP 会按照以下规则处理字符串:

  1. 从左到右扫描字符串,直到遇到第一个非数字字符为止
  2. 提取前面的数字部分转换为整数
  3. 如果没有数字部分,则转换为 0在这里插入图片描述
    由此我们知道,传入2.php跟传入2会产生相同的效果

运算符优先级

在这里插入图片描述
看似需要三个变量值都为数字,实际上在判断完v1之后赋值运算就结束了,涉及到php运算符优先级的问题在这里插入图片描述
另外一个问题在于v2中不能含有;而v3中必须含有;
解决方案:用?>代替; 用注释符除去冗余信息

payload:v1=1&v2=system(‘tac ctf*’)/&v3=/;

继续看,过滤程度加深,学习一种新方法在这里插入图片描述

echo new ReflectionClass('ctfshow');
通过反射类查看ctfshow类的具体信息

开始构造

v1=1&v2=echo new ReflectionClass&v3=;

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

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

相关文章

HVAC 设计:使用 Ansys Discovery 探索更好的设计

通过 Ansys Discovery 及其 2025 年新功能利用 CFD,通过 Computational Insights 应对 HVAC 行业的挑战。 挑战 HVAC 行业在设计高效可靠的管道系统方面面临多项挑战: 压力损失:设计不当的管道会增加能耗并降低热性能。复杂的几何形状&…

Android实现漂亮的波纹动画

Android实现漂亮的波纹动画 本文章讲述如何使用二维画布canvas和camera、矩阵实现二、三维波纹动画效果(波纹大小变化、画笔透明度变化、画笔粗细变化) 一、UI界面 界面主要分为三部分 第一部分:输入框,根据输入x轴、Y轴、Z轴倾…

基于 Buck-Boost 变换器的磷酸铁锂电池串联电压均衡模糊控制优化策略

针对磷酸铁锂电池串联应用中,由于单体电池之间存在不一致,从而导致蓄电池组利 用率和使用寿命降低的问题,本文提出一种基于非能耗型电压均衡方式的复合式电路拓扑。该均 衡电路在传统单体电池均衡电路的基础上,加入电池组间均衡电…

Spring报错解决一览

Spring错误持续更新贴… 问题一 springcloud-OAuth2.0配置的时候报错 Method springSecurityFilterChain in org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration required a bean of type ‘org.springframework.boot.autoconfigu…

免费使用 DeepSeek API 教程及资源汇总

免费使用 DeepSeek API 教程及资源汇总 一、DeepSeek API 资源汇总1.1 火山引擎1.2 百度千帆1.3 阿里百炼1.4 腾讯云 二、其他平台2.1 华为云2.2 硅基流动 三、总结 DeepSeek-R1 作为 2025 年初发布的推理大模型,凭借其卓越的逻辑推理能力和成本优势,迅速…

蓝桥杯备考:DFS剪枝之数的划分

这道题和组合型枚举差不多,比如我们从第一个数开始填,到第二个数的时候,21明显是重复了,我们就没必要继续往下递归了,这个叫剪掉等效冗余分支,然后还有就是,比如我们2开始的枝头,222…

蓝桥杯 路径之谜

路径之谜 题目描述 小明冒充 XX 星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 nnnn 个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走…

Blender调整最佳渲染清晰度

1.渲染采样调高 512 2.根据需要 开启AO ,开启辉光 , 开启 屏幕空间反射 3.调高分辨率 4096x4096 100% 分辨率是清晰度的关键 , 分辨率不高 , 你其他参数调再高都没用 4.世界环境开启体积散射 , 可以增强氛围感 5.三点打光法 放在模型和相机45夹角上 白模 白模带线条 成品

Django基础环境准备

Django基础环境准备 文章目录 Django基础环境准备1.准备的环境 win11系统(运用虚拟环境搭建)1.1详见我的资源win11环境搭建 2.准备python环境2.1 winr 打开命令提示符 输入cmd 进入控制台2.2 输入python --version 查看是否有python环境2.3在pyhton官网下…

介绍一款飞算JavaAI编程工具,集成到idea,图文并茂

飞算的插件下载地址,里边也有安装步骤: JavaAI 下载 从file-》setting-》plugin,然后走图中所示 选择从磁盘安装插件:找到下载好的压缩包然后进行idea重启 根据提示模块可以生成代码,就是需要等待,后期不…

python-leetcode-斐波那契数

509. 斐波那契数 - 力扣(LeetCode) class Solution:def fib(self, n: int) -> int:if n 0:return 0dp [0] * (n 1)dp[1] 1for i in range(2, n 1):dp[i] dp[i - 1] dp[i - 2]return dp[n]

类和对象——const修饰的类的对象和函数

const修饰的类的对象和函数 const成员函数和const对象1 const成员函数2 调用关系3 const在成员函数中的位置4 取地址&及const取地址操作符重载 const成员函数和const对象 1 const成员函数 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数&…

unity学习61:UI布局layout

目录 1 布局 layout 1.1 先准备测试UI,新增这样一组 panel 和 image 1.2 新增 vertical layout 1.3 现在移动任意一个image 都会影响其他 1.3.1 对比 如果没有这个,就会是覆盖效果了 1.3.2 对比 如果没有这个,就会是覆盖效果了 1.4 总结&#xf…

第48天:Web开发-JavaEE应用依赖项Log4j日志Shiro验证FastJson数据XStream格式

#知识点 1、安全开发-JavaEE-第三方依赖开发安全 2、安全开发-JavaEE-数据转换&FastJson&XStream 3、安全开发-JavaEE-Shiro身份验证&Log4j日志处理 一、Log4j 一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工…

使用tkinter有UI方式来拷贝Excel文件

有需求使用tkinter 有用户交互界面来拷贝Excel文件,最后进行打包完成 代码如下,实现思路是先使用tkinter库选择Excel路径,然后保存到txt文档, import time import tkinter from pathlib import Path from typing import Optiona…

【六祎 - Note】Redis缓存设计模型,备忘录;

Redis缓存备忘录 from to : 点击访问源地址

天佐.乾坤袋 基于抽屉式文件存储的NoSql数据库

天佐.乾坤袋 天佐.乾坤袋 简介 天佐.乾坤袋 基于抽屉式文件存储的NoSql数据库,可用于文件打包,数据整合,加密存放等多种用途。可以方便快捷的搭建和部署存储应用的系统。 传说: 弥勒所有,专做储物之用。拥有不可思议之力&#x…

【前端基础】Day 5 CSS浮动

目录 1. 浮动 1.1 标准流(普通流/文档流) 1.2 浮动 1.2.1 浮动的特性 1.2.2 浮动元素常和标准流父级搭配使用 1.2.3 案例 2. 常见网页布局 2.1 常见网页布局 2.2 浮动布局注意点 3. 清除浮动 3.1 原因 3.2 清除浮动的本质 3.3 清除浮动的方…

硬编码(三)经典变长指令一

我们在前两节的硬编码中学习了定长指令,接下来学习变长指令 对于定长指令,我们通过opcode便可知该指令的长度,但是对于变长指令却是不可知的。变长指令长度由opcode,ModR/M,SIB共同决定。变长指令通常在需要操作内存的…

【免费】YOLO[笑容]目标检测全过程(yolo环境配置+labelimg数据集标注+目标检测训练测试)

一、yolo环境配置 这篇帖子是我试过的,非常全,很详细【cudaanacondapytorchyolo(ultralytics)】 yolo环境配置 二、labelimg数据集标注 可以参考下面的帖子,不过可能会出现闪退的问题,安装我的流程来吧 2.1 labelimg安装 label…