攻防世界_simple_php

news2025/2/2 10:45:24

同类型题(更难版->)攻防世界_Web(easyphp)(php代码审计/json格式/php弱类型匹配)

php代码审计

  • show_source(__FILE__)show_source() 函数用于显示指定文件的源代码,并进行语法高亮显示。__FILE__ 是魔术常量,表示当前正在执行的 PHP 文件的完整路径和文件名。这行代码会显示当前文件的源代码。
  • include("config.php")include 语句用于将指定的文件(这里是 config.php)包含到当前脚本中。
1. 获取 GET 参数
$a=@$_GET['a'];
$b=@$_GET['b'];
  • @ 是错误抑制符,用于抑制可能出现的错误信息。
  • $_GET 是一个超全局变量,用于获取通过 HTTP GET 方法传递的参数。这里将用户通过 GET 请求传递的 ab 参数的值分别赋给变量 $a$b
2. 条件判断输出 $flag1
if($a==0 and $a){
    echo $flag1;
}
  • $a==0:使用松散比较运算符 == 比较 $a 是否等于 0。在松散比较中,一些非数字类型的值(如字符串 "0")也会被视为等于 0。
  • $a:在布尔上下文中,PHP 会将变量 $a 转换为布尔值进行判断。除了 false00.0""'0'array()null 等被视为 false 的值外,其他值都被视为 true
  • 要使 $a==0 and $a 这个条件成立,$a 需要满足在松散比较下等于 0,但本身又被视为布尔值 true
3. 检查 $b 是否为数字
if(is_numeric($b)){
    exit();
}
  • is_numeric() 用于判断一个变量是否为数字或者可以转换为数字的字符串。如果 $b 是数字或可转换为数字的字符串,脚本会调用 exit() 函数终止执行。
4. 条件判断输出 $flag2
if($b>1234){
    echo $flag2;
}
  • 如果 $b 不是数字(通过上一个条件判断),但在比较时能满足大于 1234 的条件,脚本会输出 $flag2。在 PHP 中,当比较一个非数字字符串和数字时,PHP 会尝试将非数字字符串转换为数字进行比较。

解题步骤

根据条件输入参数a,b获取 $flag1,获取 $flag2

a使 $a==0 and $a 这个条件成立

 b非数字,比1234大

绕过方法

  • 获取 $flag1:可以将 a 参数设置为字符串 "0e123"。在 PHP 中,以 0e 开头的字符串会被当作科学计数法表示的数字进行处理,"0e123" 会被解释为 0,满足 $a==0;同时,字符串 "0e123" 本身在布尔上下文中被视为 true,满足 $a 的条件。
  • 获取 $flag2:可以将 b 参数设置为字符串 "1235abc"is_numeric("1235abc") 会返回 false,因为它不是一个纯数字字符串;而在比较 "1235abc" 和 1234 时,PHP 会将 "1235abc" 转换为数字 1235 进行比较,满足 $b>1234 的条件。

 

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

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

相关文章

C++哈希(链地址法)(二)详解

文章目录 1.开放地址法1.1key不能取模的问题1.1.1将字符串转为整型1.1.2将日期类转为整型 2.哈希函数2.1乘法散列法(了解)2.2全域散列法(了解) 3.处理哈希冲突3.1线性探测(挨着找)3.2二次探测(跳…

Solon Cloud Gateway 开发:导引

Solon Cloud Gateway 是 Solon Cloud 体系提供的分布式网关实现(轻量级实现)。 分布式网关的特点(相对于本地网关): 提供服务路由能力提供各种拦截支持 1、分布式网关推荐 建议使用专业的分布式网关产品&#xff0…

dmfldr实战

dmfldr实战 本文使用达梦的快速装载工具,对测试表进行数据导入导出。 新建测试表 create table “BENCHMARK”.“TEST_FLDR” ( “uid” INTEGER identity(1, 1) not null , “name” VARCHAR(24), “begin_date” TIMESTAMP(0), “amount” DECIMAL(6, 2), prim…

Spring AOP 入门教程:基础概念与实现

目录 第一章:AOP概念的引入 第二章:AOP相关的概念 1. AOP概述 2. AOP的优势 3. AOP的底层原理 第三章:Spring的AOP技术 - 配置文件方式 1. AOP相关的术语 2. AOP配置文件方式入门 3. 切入点的表达式 4. AOP的通知类型 第四章&#x…

Upscayl-官方开源免费图像AI增强软件

upscayl 链接:https://pan.xunlei.com/s/VOI0Szqe0fCwSSUSS8zRqKf7A1?pwdhefi#

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发(SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度! . 除了DispatcherServletSpringMVC还会提供其他…

苍穹外卖第一天

角色分工 技术选型 pojo子模块 nginx反向代理 MD5密码加密

C# Winform enter键怎么去关联button

1.关联按钮上的Key事件按钮上的keypress,keydown,keyup事件随便一个即可private void textBox1_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode Keys.Enter){this.textBox2.Focus();}}2.窗体上的事件private void textBox2_KeyPress(object sen…

LeGO LOAM坐标系问题的自我思考

LeGO LOAM坐标系问题的自我思考 IMU坐标系LeGO LOAM代码分析代码 对于IMU输出测量值的integration积分过程欧拉角的旋转矩阵VeloToStartIMU()函数TransformToStartIMU(PointType *p) IMU坐标系 在LeGO LOAM中IMU坐标系的形式采用前(x)-左(y)-上(z)的形式,IMU坐标系…

vim交换文件的作用

1.数据恢复:因为vim异常的退出,使用交换文件可以恢复之前的修改内容。 2.防止多人同时编辑:vim检测到交换文件的存在,会给出提示,以避免一个文件同时被多人编辑。 (vim交换文件的工作原理:vim交换文件的工作…

PHP实现混合加密方式,提高加密的安全性(代码解密)

代码1&#xff1a; <?php // 需要加密的内容 $plaintext 授权服务器拒绝连接;// 1. AES加密部分 $aesKey openssl_random_pseudo_bytes(32); // 生成256位AES密钥 $iv openssl_random_pseudo_bytes(16); // 生成128位IV// AES加密&#xff08;CBC模式&#xff09…

五. Redis 配置内容(详细配置说明)

五. Redis 配置内容(详细配置说明) 文章目录 五. Redis 配置内容(详细配置说明)1. Units 单位配置2. INCLUDES (包含)配置3. NETWORK (网络)配置3.1 bind(配置访问内容)3.2 protected-mode (保护模式)3.3 port(端口)配置3.4 timeout(客户端超时时间)配置3.5 tcp-keepalive()配置…

(9) 上:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同

&#xff08;1&#xff09;经过之前的学习。俺认为结论是这样的&#xff0c;因为三次握手到四次挥手&#xff0c;到 RST 报文&#xff0c;都是 tcp 连接上收到了报文&#xff0c;这都属于读事件。所以&#xff1a; EPOLLIN : 包含了读事件&#xff0c; FIN 报文的正常四次挥手、…

因果推断与机器学习—用机器学习解决因果推断问题

Judea Pearl 将当前备受瞩目的机器学习研究戏谑地称为“仅限于曲线拟合”,然而,曲线拟合的实现绝非易事。机器学习模型在图像识别、语音识别、自然语言处理、蛋白质分子结构预测以及搜索推荐等多个领域均展现出显著的应用效果。 在因果推断任务中,在完成因果效应识别之后,需…

2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入

2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入 在全球化的今天&#xff0c;企业面临着管理多站点的挑战&#xff0c;尤其是跨语言和地理位置的站点。为此&#xff0c;我们设计了一套基于PHP的全自动企业站群镜像管理系统&#xff0c;它不仅能够自动化站点的管理&…

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发 摘要 随着人工智能技术的不断发展&#xff0c;语音识别在会议记录、语音笔记等场景中得到了广泛应用。本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。该工具能够高效地识别东…

GIS与相关专业软件汇总

闲来无事突然想整理一下看看 GIS及相关领域 究竟有多少软件或者工具包等。 我询问了几个AI工具并汇总了一个软件汇总&#xff0c;不搜不知道&#xff0c;一搜吓一跳&#xff0c;搜索出来了大量的软件&#xff0c;大部分软件或者工具包都没有见过&#xff0c;不知大家还有没有要…

飞书项目流程入门指导手册

飞书项目流程入门指导手册 参考资料准备工作新建空间国际化配置新建工作项字段管理新建字段对接标识授权角色 流程管理基础说明流程节点配置流程节点的布局配置页面上布局按钮布局配置 流程节点驳回流程图展示自动化字段修改 局限性 参考资料 飞书官方参考文档&#xff1a;飞书…

Android学习制作app(ESP8266-01S连接-简单制作)

一、理论 部分理论见arduino学习-CSDN博客和Android Studio安装配置_android studio gradle 配置-CSDN博客 以下直接上代码和效果视频&#xff0c;esp01S的收发硬件代码目前没有分享&#xff0c;但是可以通过另一个手机网络调试助手进行模拟。也可以直接根据我的代码进行改动…

如何使用SliverList组件

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了沉浸式状态栏相关的内容&#xff0c;本章回中将介绍SliverList组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的SliverList组件是一种列表类组件&#xff0c;类似我们之前介…