命令执行漏洞
Posted 远志梦边
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令执行漏洞相关的知识,希望对你有一定的参考价值。
命令执行漏洞
-
判断命令注入漏洞的流程:
- 是否调用系统漏洞
- 函数或函数参数是否可控
- 是否拼接注入命令
-
命令连接符:(在windows和linux上通用)
-
command1 && command2
&&表示先执行command1,且执行成功后才能执行command2,否则不执行
-
command1 & command2
&表示先执行command1,无论结果如何,都再执行command2
-
command1 || command2
||表示先执行command1,执行失败后再执行command2
-
command1 | command2
|表示将command1的输出作为command2的输入,只打印command2的结果
-
-
DVWA各等级的攻击
-
低等级:
调用系统命令,但是对命令末尾不做检查
输入“命令连接符+想要执行的命令”的形式,获取主机的控制权
-
中等级:
会将命令连接符“&&”和“||”替换成空
- 先补充完整网站要求的部分,再加上“& 要执行的命令”(也可以是“| 要执行的命令”)
- 利用黑名单规则(只过滤一遍),拼凑出命令连接符
-
高等级:
完善了黑名单的内容,使得利用黑名单,拼凑命令连接符这一操作变得困难
仍然存在黑名单无法过滤的规则,仍旧可以利用黑名单拼凑命令连接符
-
不可能等级:
增加了许多用于过滤的函数,使得黑名单的防护更加完善
例如:
- stripslashes(string):函数删除字符串string中的反斜杠,返回已剥离反斜杠的字符串
- explode(separator,string,limit):函数将字符串拆解成数组,返回字符串对应的数组
- is_numeric(string):检测是否为字符串或数字字符串
简单来说,就是将用户的输入限制在某一种不可能对服务器造成危害的格式,进而保证服务器的安全
-
以上是关于命令执行漏洞的主要内容,如果未能解决你的问题,请参考以下文章