20、WEB攻防——PHP特性缺陷对比函数CTF考点CMS审计实例

news2024/11/25 20:46:12

文章目录

  • 一、PHP常用过滤函数:
    • 1.1 `==`与`===`
    • 1.2 md5
    • 1.3 intval
    • 1.4 strpos
    • 1.5 in_array
    • 1.6 preg_match
    • 1.7 str_replace
  • CTFshow演示
  • 三、参考资料

在这里插入图片描述

一、PHP常用过滤函数:

1.1 =====

==:弱类型对比(不考虑数据类型),甚至可以理解为只要右边变量的前几个字符或数字等于左边的变量,==就成立,且不受符号影响。===:强类型对比(考虑数据类型),也就是说左右两边的值要完全一样才会满足===
在这里插入图片描述

1.2 md5

  • 使用md5()==进行变量比较
    md5 0e漏洞:就是说在使用md5()==进行变量比较的时候,只要左右两边的字符串经过md5()加密后,都是以0e开头的字符串,那么左右两边将会相等。
    在这里插入图片描述

    php甚至会有oe漏洞,只有两边的变量(整型)以oe开头,php也会判断左右两边相等。
    在这里插入图片描述
    在这里插入图片描述

  • 当使用md5()===进行变量对比的时候, 使用数组可以绕过md5()函数的检测。
    在这里插入图片描述

1.3 intval

函数作用:将变量的值默认转化为十进制。intval
应用地方:比如sql注入时,通常使用and 1=1来判断注入类型是数字型还是字符型,后端使用intval()函数将会使and 1=1失效。
在这里插入图片描述
缺陷:可以使用==的特性,如+16、16.0;或者进制转换后,左右变量也相等。intval绕过 在这里插入图片描述 在这里插入图片描述

1.4 strpos

函数语法:第一个参数为要搜索的字符串,第二个参数为要查找的子串,第三个参数为从哪儿开始查找。

%oa(换行)会屏蔽要搜索的子串。

在这里插入图片描述
在这里插入图片描述

过滤字符串起始不能为0
在这里插入图片描述
在这里插入图片描述

1.5 in_array

语法:
在这里插入图片描述

不设置strict参数,就相当于==进行判断。

在这里插入图片描述

在这里插入图片描述

1.6 preg_match

漏洞:preg_match只能处理字符串,如果不按规定传一个字符串,通常传一个数组进入,就会使preg_match失效,从而绕过该函数的检测。
在这里插入图片描述

1.7 str_replace

作用:替换字符串中的一些字符(区分大小写)。
在这里插入图片描述
漏洞:无法迭代过滤,只过滤一次
在这里插入图片描述

CTFshow演示

intval函数是取整,同时第二个参数为0表示通过检测第一个参数的格式来决定使用的进制。这里我们要做的是不输入4476,但是要拿到flag。可直接在4476后面加小数或者使用进制转换
在这里插入图片描述
在这里插入图片描述

三、参考资料

红日安全php项目

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

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

相关文章

vue使用xlsx和xlsx-style导出xlsx文件并修改样式

1.下载依赖 npm install xlsx --save npm install file-saver --save npm install xlsx-style --save2.先修改xlsx-style的源码,一旦引入xlsx-style则会报错 在\node_modules\xlsx-style\dist\cpexcel.js 807行 的 var cpt require(’./cpt’ ‘able’); 改成 v…

Mongodb复制集架构

目录 复制集架构 复制集优点 复制集模式 复制集搭建 复制集常用命令 复制集增删节点 复制集选举 复制集同步 oplog分析 什么是oplog 查看oplog oplog大小 复制集架构 复制集优点 数据复制: 数据在Primary节点上进行写入,然后异步地复制到Secondary节点&a…

四十七----redux

一、redux redux⽤于状态集中存储,状态的更新必须是⼀种可预测的⽅式更新。严格的单向数据流是Redux架构的设计核⼼。 这意味着应⽤中所有的数据都遵循相同的⽣命周期,这样可以让应⽤变得更加可预测且容易理解。 什么时候用redux? 多交互,多数据源等场景某个组件的状态,需…

C#拼接JSON

一、业务背景 最近项目需要与U8c对接,实现增删改查,借此机会,梳理一下C#解析Json字符串的问题。 这篇文章,先以新增接口为例。 二、新增接口 查看需要传入的json格式。 拼接json,无非就是{}和[]的来回嵌套。 首先&am…

机器人制作开源方案 | 智能水果分拣机器人

作者:史振鹏 岳欣宇 仲祝伟 单位:邢台学院 指导老师:王承林 魏亚清 一、场景调研 智能水果分拣机器人是基于探索者设计的一款可搬运可分拣以及移动的一款轻便机器人,集成了语音控制、分拣、搬运、识别、抓取等功能,…

Java 序列化机制详解

Java 序列化机制是一种将对象转换为字节流的过程,以便在网络上传输或保存到文件中,并能在需要时将字节流还原为对象。这一机制通过实现 java.io.Serializable 接口来实现,同时涉及到一些关键概念和注意事项。 Serializable 接口 Serializabl…

vscode使用remote ssh到server上 - Node进程吃满CPU

起因:Node进程吃满CPU 分析 我发现每次使用vscode的remote插件登陆到server后,就会出现node进程,不太清楚干什么用的,但是绝对和它有关。 查找原因 首先找到了这篇文章,解决了rg进程的问题: https://blo…

Shell编程基础 – C语言风格的Bash for循环

Shell编程基础 – C语言风格的Bash for循环 Shell Programming Essentials - C Style For Loop in Bash By JacksonML 循环是编程语言的基本概念之一,同样也是Bash编程的核心。当用户需要一遍又一遍地运行一系列命令直到达到特定条件时,例如&#xff1…

知识蒸馏:channel wise知识蒸馏CWD

论文:https://arxiv.org/pdf/2011.13256.pdf 1. 摘要 知识蒸馏用于训练紧凑型(轻量)模型被证明是一种简单、高效的方法, 轻量的学生网络通过教师网络的知识迁移来实现监督学习。大部分的KD方法都是通过algin学生网络和教师网络的归一化的feature map, 最小化feature map上的…

数据结构--图

树具有灵活性,并且存在许多不同的树的应用,但是就树本身而言有一定的局限性,树只能表示层次关系,比如父子关系。而其他的比如兄弟关系只能够间接表示。 推广--- 图 图形结构中,数据元素之间的关系是任意的。 一、图…

内网安全—Windows系统内核溢出漏洞提权

系统内核溢出漏洞提权 往缓冲区中写入超出限定长度的内容,造成缓冲区溢出,从而破坏程序的堆栈进而运行自己精心准备的指定代码,达到攻击的目的。 分类: 堆溢出 栈溢出 查找补丁的方法 1、手工查找补丁情况 systeminfo Wmic qfe…

Redis设计与实现之Lua 脚本

目录 一、 Lua 脚本 1、初始化 Lua 环境 2、脚本的安全性 3、脚本的执行 4、 EVAL 命令的实现 定义 Lua 函数 执行 Lua 函数 5、 EVALSHA 命令的实现 二、 小结 一、 Lua 脚本 Lua 脚本功能是 Reids 2.6 版本的最大亮点,通过内嵌对 Lua 环境的支持&#xf…

加特兰Demo点迹数据Python读取和显示

加特兰当前主推的芯片,拿到了样件做了几个基本Demo测试,录取的点迹数据为txt文档,数据格式如下: FT 0.10 CMN1 263 CMN2 150 BNK 0 --- F 0 O 140/2/140!0/0/0/0/0/0.00! --- BK00: P 25.67, R 4.11, V 0.00, A -39.04,…

AR室内导航如何实现?技术与原理分析

随着科技的进步,我们生活中许多方面正在被重新定义。其中之一就是导航,尤其是室内导航。增强现实(AR)技术的出现为室内导航带来了革命性的变革。本文将深入探讨AR室内导航的技术与原理,以及它如何改变我们的生活方式。…

bat批处理:git上传更新

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 文章目录 批处理背景批处理代码代码说明:使…

Hadoop Single Node Cluster的安装

Hadoop Single Node Cluster的安装 安装JDK查看java -version更新本地软件包安装JDK查看java安装位置 设置SSH无密码登录安装hadoop下载安装设置hadoop环境变量修改hadoop配置设置文件设置core-site.xml设置YARN-site.xml设置mapred-site.xml设置HDFS分布式文件系统创建并格式化…

[ CTF ]【天格】战队WriteUp-第七届“强网杯”全国安全挑战赛

第七届“强网杯”全国安全挑战赛 2023.12.16~2023.12.17 文章目录 【Misc】Pyjail ! Its myFILTER !!!easyfuzz谍影重重2.0签到Pyjail ! Its myRevenge !!!server_8F6C72124774022B.py 问卷调查 【Reverse】ezre 【Web】happygame 【强网先锋】石头剪刀布TrieSpeedUpezreez_fmt…

翻译: LLMs新的工作流程和新的机会 New workflows and new opportunities

生成人工智能正以多种方式引领着不仅仅是成本节约,更是收入增长。但是,就像生成人工智能这样的通用技术创造价值的方式有很多,谈论这些方式是很多的。但在这个视频中,我想看看一些我看到的新兴的,或者更常见的走向这种…

Java 8 中的 Stream:优雅的集合处理

Java 8 中的 Stream:优雅的集合处理 为什么需要 Stream?Stream 的特性Stream 基本操作1. 创建 Stream2. 中间操作2.1 过滤(Filter)2.2 映射(Map)2.3 截断(Limit) 3. 终端操作3.1 遍历…

STM32内部是怎么工作的

STM32是怎么工作的 1 从孩子他妈说起2 早期计算机的组成2.1 五大元件(1)第一个出场的是电容元件(2)第二个出场的是二极管(3)第三个出场的是电阻元件(4)第四个出场的是电感&#xff0…