打开靶场这是一道php代码注入,注入点要求我们通过GET参数c传入指令,但是将flag跟i给禁止了如果直接输入代码就不能执行

我们先用?c=system(\”ls\”);命令看看当前目录下的文件和子目录
发现有flag.php但是flag被限制了肯定不能直接输入所以我们想办法绕过
1. 使用通配符(最简单直接) 在 Linux Shell 中,? 可以匹配任意单个字符,* 匹配任意多个字符。 Payload: ?c=system(\”cat f*\”); 解析: PHP 执行 system 调用系统命令,Linux 会自动将 f* 展开为 flag.php。 2. 字符串拼接/变量替换 PHP 允许动态构建字符串。 Payload: ?c=$a=\”fla\”;$b=\”g.php\”;system(\”cat \”.$a.$b); 解析: 将 \”flag\” 拆分成两部分再拼接,正则检查的是变量定义过程,而 eval 执行的是拼接后的结果。


