news 2026/4/27 17:44:52

PHP特性学习(89-91)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP特性学习(89-91)

过晚提交任务原因及解释

前几天甲流了,请了一段时间巨长的假,现在正在追赶进度

重新准备与环境搭建

准备工具:edge浏览器

环境搭建:本地小皮面板

PHP靶场一

<?php include("flag.php"); highlight_file(__FILE__); if (isset($_GET['num'])) { $num = $_GET['num']; if (preg_match("/[0-9]/", $num)) { die("no no no!"); } if (intval($num)) { echo $flag; } }

定义了一个num变量用来传递参数

//因此只需访问这个地址即可取得flag http://localhost/?num[]=a //flag为:flag{You have successfully completed web89!}

PHP靶场二

<?php include("flag.php"); highlight_file(__FILE__); if (isset($_GET['num'])) { $num = $_GET['num']; if ($num === "4476") { die("no no no!"); } if (intval($num, 0) === 4476) { echo $flag; } else { echo intval($num, 0); } }

这个也是必须通过GET方式传入num参数(isset($_GET['num'])

但是num不能与字符串"4476"严格相等===要求值和类型都完全一致,否则执行die)且intval($num, 0)的结果必须严格等于 4476

所以可以绕过严格比较,方法如下:

  1. 数字后接非数字字符:

    http://localhost/?num=4476a http://localhost/?num=4476%20 http://localhost/?num=4476x http://localhost/?num=4476\n //等等
  2. 其他进制表示法(十六,八)

    http://localhost/?num=0x117C http://localhost/?num=010574 //等等

得到flag:flag{You have successfully completed web90!}

PHP靶场三

<?php show_source(__FILE__); include('flag.php'); $a=$_GET['cmd']; if(preg_match('/^php$/im', $a)){ if(preg_match('/^php$/i', $a)){ echo 'hacker'; } else{ echo $flag; } } else{ echo 'nonononono'; }

代码逻辑

  1. 接收 GET 参数cmd
  2. 第一个正则匹配:preg_match('/^php$/im', $a),匹配成功则进入内部判断,否则输出nonononono
  3. 内部第二个正则匹配:preg_match('/^php$/i', $a),匹配成功输出hacker,否则输出flag

目标如下

需要构造cmd参数,满足:

  • 第一个正则/^php$/im匹配成功(进入内部判断);
  • 第二个正则/^php$/i匹配失败(输出 flag)。

绕过方法

  1. php前加换行符

    http://localhost/?cmd=%0aphp
  2. php后加换行符+任意字符

    http://localhost/?cmd=php%0ab http://localhost/?cmd=php%0ajj http://localhost/?cmd=php%0asuhs //等等
  3. 加多个换行符

    http://localhost/?cmd=php%0a%0a

得到flag:flag{You have successfully completed web91!}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 23:35:19

gpt-oss-20b RESTful API设计与集成指南

gpt-oss-20b RESTful API设计与集成指南 在本地化AI部署需求日益增长的今天&#xff0c;越来越多开发者面临一个核心挑战&#xff1a;如何在有限硬件资源下运行高性能语言模型&#xff1f;尤其当消费级设备普遍仅配备16GB内存时&#xff0c;传统大模型往往难以启动。正是在这种…

作者头像 李华
网站建设 2026/4/23 16:23:53

ComfyUI安装全指南:国内加速与GitHub配置

ComfyUI 安装全指南&#xff1a;国内加速与 GitHub 配置 在 AI 图像生成领域&#xff0c;ComfyUI 正迅速成为高级用户和开发者的首选工具。它不像传统 WebUI 那样依赖固定的按钮和界面操作&#xff0c;而是通过“节点式工作流”将整个生成过程拆解成可拖拽、可复用的模块——就…

作者头像 李华
网站建设 2026/4/24 20:28:10

LobeChat能否用于创建知识库问答系统?RAG架构落地

LobeChat能否用于创建知识库问答系统&#xff1f;RAG架构落地 在企业数字化转型的浪潮中&#xff0c;员工每天面对海量文档、政策手册和内部知识资产&#xff0c;如何快速获取准确信息成为效率瓶颈。传统FAQ系统早已力不从心——它们僵化、更新滞后&#xff0c;面对“2024年差旅…

作者头像 李华
网站建设 2026/4/25 2:25:07

工作电压2.4-5.2V段码LCD液晶驱动IC/段式LCD驱动器 VK1056C

VK1056C是一个点阵式存储映射的LCD驱动器&#xff0c;可支持最大 56点&#xff08;14SEG 4COM&#xff09;的LCD屏, 也支持2COM和3COM的 LCD屏。单片机可通过三条通信线配置显示参数和发送显示 数据&#xff0c;也可通过指令进入省电模式。LJQ7117产品品牌&#xff1a;永嘉微电…

作者头像 李华
网站建设 2026/4/25 18:11:08

UV相机的工作原理

UV相机的工作原理UV相机是一种专门用于捕捉紫外线&#xff08;Ultraviolet&#xff0c;UV&#xff09;波段图像的设备。其工作原理基于紫外线与物质的相互作用&#xff0c;以及特殊的光学系统和传感器设计。UV相机的核心部件包括紫外线透过滤镜、紫外敏感传感器和图像处理系统。…

作者头像 李华