千家信息网

DVWA系列之7 low级别命令执行漏洞

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,下面我们开始分析DVWA中的Command Execution命令执行漏洞。首先仍是将DVWA Security设置为Low,选择Command Execution,这里在文本框中输入一个IP,点击S
千家信息网最后更新 2025年02月23日DVWA系列之7 low级别命令执行漏洞

下面我们开始分析DVWA中的Command Execution命令执行漏洞。

首先仍是将DVWA Security设置为Low,选择Command Execution,这里在文本框中输入一个IP,点击Submmit提交便可以执行ping命令。

点击"View Source"查看网页源码。

可以看到,这里的数据是以post方式提交过来的,然后被赋值给了变量$target。

接下来有一个if语句,判断条件是"stristr(php_uname('s'), 'Windows NT')",这是用来判断当前的系统是否是Windows,因为Windows和Linux下的ping命令执行参数是不同的。

再下面是将函数"shell_exec( 'ping ' . $target )"的值赋值给变量$cmd,并输出$cmd的值,其实也就是在执行"shell_exec( 'ping ' . $target )"函数,因而shell_exec()函数就是这里的核心了。

shell_exec()函数的作用就是可以在PHP中去执行操作系统命令,因而如果不对用户输入的命令进行过滤,那么理论上就可以执行任意系统命令,也就相当于直接获得了系统级的Shell,因而命令包含漏洞的威力相比SQL注入要大多了。

比如我们在文本框中输入"127.0.0.1 | net user",实际上就是通过管道符"|"去执行了"net user"命令。明白了原理之后,那么我们完全可以继续执行"127.0.0.1 | net user test 123 /add"、"127.0.0.1 | net localgroup administrators test /add"命令,从而拿下整个服务器。

在DOS下允许同时执行多条命令的符号主要有以下几个:

  • "|":前面命令输出结果作为后面命令的输入内容;

  • "||":前面命令执行失败的时候才执行后面的命令;

  • "&":前面命令执行后接着执行后面的命令;

  • "&&":前面命令执行成功了才执行后面的命令。

如果是Linux系统,还可以使用分号(;),也可以同时执行多条命令。

另外还可以使用重定向(>)在服务器中生成文件,或是使用(<)从事先准备好的文件读入命令等。

最后,大家可以分别用上面这些符号,自己来构造语句去执行相应的命令。

命令 系统 函数 输入 就是 漏洞 变量 同时 多条 文件 文本 服务器 符号 语句 服务 输出 不同 不对 成功 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何维护网络安全和预防网络风险 杭州万通网络技术有限公司 网络技术分析师 上海网络技术股申请 云服务器自建p2p摄像头 辽宁数据库安全箱推荐厂家 软件开发vrp 网络技术应用创业计划书 数据库字段 类型 规则 高级软件开发工程师证书费用 成都融榆互联网络科技有限公司 ftp服务器登录不了 数据库通常使用表示空值 怎么注册人民日报图文数据库 电力系统开展网络安全排查 服务器链路聚合 存储服务器安装后会格式化硬盘吗 应用软件开发工程师简历模板 软件开发项目背景描述 防火墙公网访问服务器 软件开发的生存期 我的世界服务器啪啪啪 计算机软件开发是开发游戏吗 人工神经网络技术的实例 奉贤区标准网络技术服务业务流程 lol突然登录不了服务器 网络安全学习的感悟 苏州软件开发公司 凌锐 小学生网络安全建言 存储服务器安装后会格式化硬盘吗
0