1、 source命令
用法:source filename
表示在当前bash环境下读取并执行filename中的命令
该命令通常用命令“.”来替代,即 . filename
2、?通配符
主要有星号(*)和问号(?),用来模糊搜索文件
星号”*”指代任意字符数,问号“?”指代1个字符
波浪线“~”则用来将问号和星号转换为普通字符,而不是作为通配符使用
比如我们要cat一个flag东西但是不知道具体名字,只知道以f开头
可以 cat /f* 则会匹配所有以f开头的文件
有时候还会遇到很多字母被过滤了也可以使用?来进行匹配
比如只能使用o这一个字母, /???/??oo?/??o? 就可以匹配到 /var/spool/cron(假设该路径存在)
3、=的用法
命令执行方式有:system('ls'); echo('ls');
= 是echo()的别名用法
所以system('ls');还可以写成?>=`ls`;
前面的 ?> 是为了闭合前面的php语句,后面则为执行命令的语句
4、``反引号
反引号``(tab键上面的那个)
在php中,反引号可以直接命令执行系统命令,反引号的作用是命令替换,将其中的字符串当成shell命令执行,返回命令的执行结果。反引号包括的字符串必须是能执行的shell命令,如果不是则会出错。
比如:= `ls` ?> 就会执行ls命令
但是如果想要输出执行结果还需要使用 echo 函数
或者 = echo `ls`?>
5、 php标签
在php中, ?>称为短标签,称为长标签。
当关键字 "php" 被过滤了之后,此时我们便不能使用了,但是我们可以用另外两种短标签进行绕过,并且在短标签中的代码不需要使用分号(;)。
6、+在url中表示空格
url中的+表示空格,而要表示+号必须得用%2B,即URL编码