1.eval执行
request接受post和get请求,接受cmd参数  使用远程系统命令遍历目录 查看文件 
2.文件包含
需要传一个file参数,不能为flag,存在shell.txt,可连接shell,故可以访问?file=shell.txt 之后post提交ctfhub=system('cat /flag'); 查看flag  
3.常见伪协议用法

4.php://input
开头0–6为必须为php:// ,故可以用php://input 执行查看命令 查看目录 找到flag_29702 查看flag 
5.远程包含
使用php://input 
或者可以直接包含文件,使用<?php sysytem('cat flag');?> 也会显示ctfhub
6.读取源代码
 使用?file=php://filter/read=convert.base64-encode/resource=/flag 获取到文件经过base64加密后的内容,解密得到flag  
7.命令注入
可使用管道符 如& 或 && 与 | 直接执行后面语句 || 前面出错执行后面的(windows) ; 前后都执行 其余的与windows相似(linux)  
8 .过滤cat
查看内容的系统命令:cat less more tac tail cut  
9.过滤空格
使用< 占位,绕过空格过滤,或使用${IFS} 代替  
10.过滤目录分隔符
使用${PATH:0:1} 代替/ 
 还可使用分隔符; 连续执行系统命令 
11.过滤运算符
使用; ,linux的运算符,表示前后都执行  
12.综合过滤练习
过滤了| ,& ,; ,空格 ,/ ,cat ,flag ,ctfhub 可使用%0a 换行符,%0d 回车,%0D%0A 绕过运算符限制 使用${IFS} ,< 代替空格 使用${PATH:0:1} 代替/ 使用$* 时,若没有定义$* ,linux则会将将$* 表示为空,则绕过了字符的限制,如fl$*ag
查目录 找到flag文件 查看flag  或  
|