当前位置: 首页 > news >正文

ctf show web入门91

这道题非常经典考查的是 PHP 正则表达式修饰符Modifiers的特性差异以及换行符绕过。我们的目标是让代码执行到 else { echo $flag; }。也就是说我们需要让输入的参数a满足以下两个条件通过第一个检测pregmatch(′/phpa 满足以下两个条件 通过第一个检测preg_match(/^phpa满足以下两个条件通过第一个检测pregm​atch(′/php/im’,a)必须为True。绕过第二个检测pregmatch(′/phpa) 必须为 True。 绕过第二个检测preg_match(/^phpa)必须为True。绕过第二个检测pregm​atch(′/php/i’, $a) 必须为 False。核心代码与正则表达式分析我们来对比一下这两个 preg_match 的正则表达式有什么不同第一个正则表达式‘/^php$/im’/i忽略大小写。/m多行模式Multi-line mode。在多行模式下^ 不仅匹配字符串的开头还匹配每一行的开头即换行符 \n 之后的位置。$ 不仅匹配字符串的结尾还匹配每一行的结尾即换行符 \n 之前的位置。这意味着只要你的输入中有任意独立的一行内容完全是 “php”就能触发 True。例如 “abc\nphp\ndef” 就可以匹配成功。第二个正则表达式‘/^php$/i’/i忽略大小写。注意这里没有 /m 修饰符默认是单行模式。在默认模式下^ 只能匹配整个字符串的绝对开头。$ 匹配整个字符串的结尾或者是字符串末尾的换行符之前。这意味着它要求你的整个输入字符串极其严格除了 “php”或其大小写变体之外不能有其他多余的行或字符。绕过思路既然第一个正则支持多行匹配而第二个正则不支持我们就可以利用 换行符\nURL编码为 %0a 来构造攻击载荷Payload。我们需要构造一个字符串使得它包含多行其中有一行是 php构造结构换行符 php 或者是 php 换行符 任意内容分析原理比如我们输入 %0aphp即一个换行符后面跟着 php。第一个正则 (/im)因为有换行符它把字符串看作两行。第二行是 “php”完全符合 /^php/匹配成功进入内层循环。第二个正则(/i)因为它没有/m它把/匹配成功进入内层循环。 第二个正则 (/i)因为它没有 /m它把 %0aphp 当作一个整体。由于绝对开头是一个换行符而不是 p所以 ^php/匹配成功进入内层循环。第二个正则(/i)因为它没有/m它把匹配失败直接走到 else 分支输出 $flag。最终构造 Payload在 URL 中换行符 \n 需要进行 URL 编码对应的编码是 %0a。你可以尝试以下任意一种构造方式方式一开头加换行payload?cmd%0aphp方法二结尾加换行和任意内容payload为?cmdphp%0aa
http://www.rkmt.cn/news/1300820.html

相关文章:

  • 轻量级Web框架Oli:从核心原理到生产实践
  • 基于声明式Web自动化框架Hydra的电商数据监控实战
  • 如何快速解决系统依赖问题:Visual C++运行库一键修复完整指南
  • ElevenLabs德语TTS落地全链路:从API密钥配置、音色微调到DIN 5008合规语音输出(含实测WER<2.3%数据)
  • 基于Claude的AI招聘系统:从简历解析到智能评估全流程实践
  • 从零构建AI智能体操作系统:架构、部署与工具开发实战
  • 为什么92%的设计师用错表现主义关键词?——从色彩张力、动态畸变到情绪权重的7步精准控制法
  • OpenGL拼图游戏开发:从渲染管线到交互逻辑的完整实现
  • 3分钟快速上手:CELLxGENE单细胞数据交互式探索终极指南
  • Trae Solo 与 Qoder Quest
  • VSCode AI编程助手深度解析:从智能体架构到实战调优
  • 开源工具箱KIVI:模块化设计与工程化实践解析
  • 小红书开源工具xhs-skill:合规自动化提升内容创作效率
  • 一文读懂:原始套接字的前世今生
  • 认识Python网络套接字编程客户端代码实现
  • 从零打造可穿戴发光鳞甲:3D打印与CircuitPython灯光编程实战
  • 深入解析User-Agent:从字符串到结构化数据的标准化实践
  • MCP-Commander:让AI助手操作本地文件与命令行的智能接口
  • Linux内核升级C11标准:从C89到现代C语言的演进与实战解析
  • QQ截图独立版终极指南:免费高效的屏幕捕获与OCR文字提取工具
  • 个人开源项目工程化实践:从代码组织到自动化维护
  • 多智能体系统架构设计:从核心原理到AgentOrg工程实践
  • C++ DTL库实战:程序化生成地牢与迷宫地图的核心算法与应用
  • 【Midjourney玩具相机风格终极指南】:20年AI影像专家亲授5大参数调优公式+3类胶片噪点模拟秘技
  • Raptor:基于Rust的毫秒级大型代码库索引搜索引擎原理与实践
  • 免费开源的原神工具箱:Snap.Hutao如何彻底改变你的游戏体验
  • RAG知识库实战:LangChain+Chroma搭建本地问答系统,解决幻觉与知识更新
  • 基于MCP协议的SQL工具链:AI智能体与数据库交互的标准化实践
  • 构建高效配置管理体系:从配置即代码到GitOps实践
  • 3个技巧让SD-PPP插件提升Photoshop设计效率300%