news 2026/4/23 17:41:23

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/22 18:40:55

PaddlePaddle语音识别套件实践:集成github镜像提升模块加载效率

PaddlePaddle语音识别套件实践&#xff1a;集成GitHub镜像提升模块加载效率 在中文语音识别项目的开发过程中&#xff0c;你是否曾因一个模型下载卡住整个流程&#xff1f;凌晨两点&#xff0c;CI/CD流水线又一次因为 github.com 连接超时而中断——这种场景对国内开发者来说并…

作者头像 李华
网站建设 2026/4/23 10:29:58

Qwen3-32B大模型调用与鉴权指南

Qwen3-32B大模型调用与鉴权指南 在构建现代AI应用的过程中&#xff0c;如何高效、安全地接入高性能大模型已成为开发者面临的核心挑战之一。随着企业对推理准确性、响应实时性和系统可控性的要求不断提升&#xff0c;选择一个兼具强大能力与灵活接口的模型变得尤为关键。Qwen3-…

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

LobeChat能否实现AI生成周报?职场人士减负必备

LobeChat能否实现AI生成周报&#xff1f;职场人士减负必备 在每周五下午的工位上&#xff0c;你是否也经历过这样的场景&#xff1a;一边翻着零散的会议记录、邮件往来和任务看板&#xff0c;一边绞尽脑汁拼凑一份“看起来像样”的周报&#xff1f;明明做了不少事&#xff0c;写…

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

LobeChat前端性能优化技巧:加载速度提升60%以上

LobeChat前端性能优化实践&#xff1a;如何实现加载速度提升60%以上 在AI聊天应用日益普及的今天&#xff0c;用户早已不再满足于“能用”&#xff0c;而是追求“好用”——尤其是打开即响应的流畅体验。尽管大语言模型的能力突飞猛进&#xff0c;但一个卡顿、闪屏、等待超过三…

作者头像 李华
网站建设 2026/4/23 11:47:39

VSCode远程开发调试GPT-SoVITS模型技巧

VSCode远程开发调试GPT-SoVITS模型技巧 在语音合成技术飞速发展的今天&#xff0c;个性化音色克隆正从实验室走向消费级应用。只需一段一分钟的录音&#xff0c;就能复刻一个人的声音特征——这不再是科幻情节&#xff0c;而是 GPT-SoVITS 这类开源模型已经实现的能力。然而&am…

作者头像 李华
网站建设 2026/4/23 11:45:39

Excalidraw GPU算力加持!AI绘图速度提升10倍

Excalidraw GPU算力加持&#xff01;AI绘图速度提升10倍 在远程协作成为常态的今天&#xff0c;团队对可视化工具的需求早已超越了简单的“画框连线”。无论是产品原型讨论、系统架构设计&#xff0c;还是敏捷开发中的白板会议&#xff0c;一张清晰直观的草图往往比千言万语更高…

作者头像 李华