命令执行漏洞
命令执行漏洞
-
判断命令注入漏洞的流程:
- 是否调用系统漏洞
- 函数或函数参数是否可控
- 是否拼接注入命令
-
命令连接符:(在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):检测是否为字符串或数字字符串
简单来说,就是将用户的输入限制在某一种不可能对服务器造成危害的格式,进而保证服务器的安全
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?