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

文章目录

  • 一、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项目

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

创建个人网站(二)前端主页设计和编写一(太阳移动)

前言 以下内容纯纯当乐子来看就行,知识分享一下这样设计的原因,想看正文直接见下一节 为什么创建个人网站一之后几天没有动静了呢,一个是家里有事实在比较忙,第二个原因是没想到主页要设计成什么样,知道前两天问我姐什…

Labview Vision 机器视觉使用,从下载程序安装应用,到实战找硬币并输出值

1.前言 大家好,今天我要和机器人一起配合来打算 做机器视觉 用Labview 和 Vision 联动实现机器的视觉 2.下载软件-软件的安装 我们除了基础款的labview软件 还要安装视觉四件套 1.Labview 编程平台(我是 2023 q3) 2. NI - IMAQdx (驱动软…

客户关系管理系统 crm

系统开发环境以及版本 操作系统: Windows_7集成开发工具: Eclipse EE_4.7编译环境:JDK_1.8Web服务器:Tomcat_9.0数据库:MySQL_5.7.23 系统框架 spring框架springmvc框架mybatis框架Logback日志框安全验证框架maven框架…

数据库增删改查Native SQL

DBCO:检查数据库是否连接 代码: 查询: DATA: gv_dbs TYPE char30 VALUE XXXXXXXX. "数据库连接名称 DATA:gt_ztclaim_2 TYPE TABLE OF ztclaim_2. DATA:gs_ztclaim_2 TYPE ztclaim_2.TRY.EXEC SQL.CONNECT TO :GV_DBSENDEXEC.EXEC SQ…

速度与稳定性的完美结合:深入横测ToDesk、TeamViewer和AnyDesk

文章目录 前言什么是远程办公?远程办公的优势 远程办公软件横测对象远程软件的注册&安装ToDeskTeamViewerAnyDesk 各场景下的实操体验1.办公文件传输及丢包率2.玩游戏操作延迟、稳定3.追剧画质流畅度、稳定4.临时技术支持SOS模式 收费情况与设备连接数总结 前言…

【兔子王赠书第13期】AI绘画实战:Midjourney从新手到高手

文章目录 写在前面AI绘画推荐图书一本书读懂AI绘画关键点内容简介作者简介 推荐理由粉丝福利写在后面 写在前面 如今AI技术已经进入了我们的日常学习生活中,如何用一本书轻松玩转AI绘画,领略无限艺术可能呢? AI绘画 AI绘画是指利用人工智能…

【python】深拷贝和浅拷贝

能使用.copy()的对象: 需要是能改变元素的对象比如 list 和 set 还有 字典dic就可以改变对象,可以使用copy函数但是类似于 一个整数 a10 或者 元组 或者字符串就不能使用copy函数,因为他们是不可改变的对象 深拷贝和浅拷贝 浅拷贝就是这能复…

响应式布局2:手写响应式导航栏(BootStrap实现以及原生实现)

1.响应式导航栏介绍 响应式导航栏是一种在不同设备和屏幕尺寸下自适应布局和显示的导航栏。它可以根据用户所使用的设备(如桌面电脑、平板电脑或手机)自动调整其外观和交互方式,以提供更好的用户体验。 pc端: 手机端&#xff1a…

如何打造自己的知识付费小程序平台

在当今知识付费的浪潮中,我们经常可以看到各种知识付费平台如雨后春笋般涌现。然而,这些平台往往只是一个过客,让我们短暂停留后,便淹没在信息的海洋中。如果你有一个出色的课程,为什么不让它在一个属于你自己的平台上…

TypeError: Cannot read properties of undefined (reading ‘row‘)原因及解决办法

TypeError: Cannot read properties of undefined (reading ‘row’) 这个错误表明 Vue 在渲染时试图读取未定义或空值的属性,导致无法访问到属性 ‘row’。需要加入插槽slot-scope“scope”

JVM-9-Class类文件的结构

Java技术能够一直保持着非常良好的向后兼容性,Class文件结构的稳定功不可没。 Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中。 Class文件格式采用一种类似于C语言结构体的伪结构来存储数据&#xff0c…

如何用idm下载迅雷 2024最新详细解析

有许多小伙伴日常习惯用迅雷处理或者下载文件,对于普通用户,由于迅雷平台的限速,下载速度仅有几十kb。此外,还有一些小伙伴安装idm后软件界面是英文,那么如何用idm下载迅雷,idm怎么设置中文呢?今…

Nginx+keepalived实现高可用负载群集

实现方式 使用Nginx作为负载调度器,通过四层代理转发给web器处理请求,实现负载均衡; 在Nginx调度器上配置脚本监控(健康检查),实现主备热备份,当主失效切换至备工作。 实验 实验准备 Web 服…

Linux 进程信号

文章目录 信号的概览信号的产生信号的处理信号集操作信号的捕捉补充与说明 信号的概览 信号由软件或硬件产生发送给进程,进程对其做相应处理。信号是进程之间事件异步通知的一种方式,属于软中断。 Linux下的全部信号由指令kill -l查询 Linux 下指令的…

SQL进阶理论篇(十):数据库中的锁

文章目录 简介按照锁的粒度进行划分从数据库管理的角度进行划分从程序员的角度进行划分为什么共享锁会发生死锁?参考文献 简介 索引和锁,是数据库中的两个核心知识点。 索引的相关知识点,在之前的几章里我们已经介绍的差不多了。接下来我们…

结构体基础例题

这里写目录标题 例题一例题解析答案 例题二例题解析答案 例题三例题解析答案 例题四例题解析答案 例题五例题解析及答案 例题六例题解析及答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 &#x1f978…

如何在大型Python项目中优雅地使用Dotenv

如何在大型Python项目中优雅地使用Dotenv 引言Dotenv的基本概念什么是Dotenv?Dotenv的工作原理如何在项目中使用Dotenv 环境变量与大型项目配置环境变量的重要性管理不同环境的配置使用Dotenv优化配置管理 Dotenv的高级应用动态配置与环境切换安全性和敏感数据管理与…

深入了解Linux信号:作用、产生、捕捉和阻塞

这里写目录标题 引言1. 信号的基本概念1.1 信号的分类和编号:1.2 查看信号默认处理动作1.3 信号的作用1.4 信号的产生1.4.1通过终端按键产生1.4.2通过系统函数向进程发信号1.4.3由软件条件产生信号1.4.4硬件异常产生信号 2. 常见信号及其作用SIGINT (2) - 中断信号&…

智慧水务系统解决了哪些问题

随着城市化进程的加快,水资源的日益紧缺和水环境问题的日益突出,传统的水务管理方式已经无法满足现代城市的需求。为了解决这些问题,智慧水务系统应运而生。 一、智慧水务系统概述 智慧水务系统是一种基于物联网、大数据、云计算等先进技术…

回归预测 | MATLAB实现NGO-SCN北方苍鹰算法优化随机配置网络的数据回归预测 (多指标,多图)

回归预测 | MATLAB实现NGO-SCN北方苍鹰算法优化随机配置网络的数据回归预测 (多指标,多图) 目录 回归预测 | MATLAB实现NGO-SCN北方苍鹰算法优化随机配置网络的数据回归预测 (多指标,多图)效果一览基本介绍…