首页 > 其他分享 >【Pikachu】任意文件上传实战

【Pikachu】任意文件上传实战

时间:2024-11-16 10:16:03浏览次数:3  
标签:实战 文件 Pikachu E6% jpg https php 上传

将过去和羁绊全部丢弃,不要吝惜那为了梦想流下的泪水。

1.不安全的文件上传漏洞概述

不安全的文件上传漏洞概述

文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。 如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器被webshell。

所以,在设计文件上传功能时,一定要对传进来的文件进行严格的安全考虑。比如:

–验证文件类型、后缀名、大小;

–验证文件的上传方式;

–对文件进行一定复杂的重命名;

–不要暴露文件上传后的路径;

–等等…

2.client check

查看源码

function checkFileExt(filename)
    {
        var flag = false; //状态
        var arr = ["jpg","png","gif"];
        //取出上传文件的扩展名
        var index = filename.lastIndexOf(".");
        var ext = filename.substr(index+1);
        //比较
        for(var i=0;i<arr.length;i++)
        {
            if(ext == arr[i])
            {
                flag = true; //一旦找到合适的,立即退出循环
                break;
            }
        }
        //条件判断
        if(!flag)
        {
            alert("上传的文件不符合要求,请重新选择!");
            location.reload(true);
        }
    }

分析,前端限制,可以通过禁用javascript绕过

上传php文件,显示不允许

在这里插入图片描述

使用火狐浏览器,直接禁用javascript,到这个界面,点击取消

在这里插入图片描述

使用谷歌浏览器,同样禁用javascript,

在这里插入图片描述

点击上传,找到路径并访问

在这里插入图片描述

http://x.x.x.x/vul/unsafeupload/uploads/phpinfo.php

在这里插入图片描述

3.MIME type

选择非图片的文件时, 不会拦截; 点击上传时, 服务器端检测到非图片格式, 就被拦截

在这里插入图片描述

MIME (Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型

MIME 是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。常见的 MIME 类型,比如:

超文本标记语言:.html,.html text.html

普通文件:.txt text/plain

RTF文件:.rtf application/rtf

GIF图形:.gif image/gif

JPEG图形:.jpeg,.jpg image/jpeg

查看源码, 定义了一个数组 并且调用了uploadfile函数

在这里插入图片描述

上传1.jpg ,抓包查看type类型

在这里插入图片描述

上传1.php ,抓包查看type类型

在这里插入图片描述

修改phpinfo.php的type类型为image/jpeg

在这里插入图片描述

上传成功

在这里插入图片描述

在这里插入图片描述

4.getimagesize

getimagesize函数更是限制了上传文件的文件头必须为图像类型

修改文件的type类型不可用

第一种方法,可以通过添加jpg图片的格式头到脚本文件里进行绕过

首先在文本文档里写入<?php phpinfo();?>文件后缀修改为.jpg

在这里插入图片描述

上传文件,抓包,在脚本文件前加上GIF89,放包

在这里插入图片描述

成功上传

在这里插入图片描述

第二种方法,在图片文件内容后添加<?php phpinfo();?>

命令行输入copy 1.png/b + phpinfo.php/a 2.png

在这里插入图片描述

点击上传

在这里插入图片描述

文件上传成功

在这里插入图片描述

服务器会将木马文件解析成图片文件,因此向其发送执行该文件的请求时,服务器只会返回这个“图片”文件,并不会执行相应命令。

可以利用之前的文件包含漏洞,将图片格式的文件当做php文件来解析执行:

http://x.x.x.x/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2020/10/20/5936185f8e5245666f2586884965.jpg&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

在这里插入图片描述

http://x.x.x.x/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2020/10/20/6950415f8e7cda64b46247514668.jpg&submit=提交查询

在这里插入图片描述

文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。

免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。

转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。

CSDN: 
https://rdyx0.blog.csdn.net/

公众号:儒道易行
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect

博客:
https://rdyx0.github.io/

先知社区:
https://xz.aliyun.com/u/37846

SecIN:
https://www.sec-in.com/author/3097

FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85

标签:实战,文件,Pikachu,E6%,jpg,https,php,上传
From: https://blog.csdn.net/weixin_48899364/article/details/143671584

相关文章

  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
    摘要随着计算机科学技术日渐成熟,人们已经深刻认识到了计算机功能的强大,计算机已经进入到了人类社会发展的各个领域,并且发挥着十分重要的作用。通过管理系统在电脑上的应用,人们能更好的管理信息,储存数据。为了能够提供游戏商城的方便性,开发了基于vue的游戏网站。此游戏网站......
  • (分享源码)计算机毕业设计必看必学 上万套实战教程手把手教学JAVA、PHP,node.js,C++、pyth
    摘要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,招聘网站当然也不能排除在外。招聘网站是以实际运用为开发背景,运用软件工程开发方法,采用互联网技术构建的一个管理系统。整个开发过程首先对软件系统进行需......
  • 计算机毕业设计项目推荐,SSM山西能源学院教室管理系统81671(开题答辩+程序定制+全套文案
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,山西能源学院教室管理系统当然也不能排除在外。山西能源学院教室管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用 SSM技术构建的一个管理系......
  • HarmonyOS Next 实战:构建智能家居分布式协同系统
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。随着智能家居的迅速发展,用户对智能设......
  • VMR 实战指南:一站式管理多语言SDK
    1.引言在现代软件开发中,我们经常需要同时使用多种编程语言和工具。管理这些不同语言的SDK版本可能会成为一个令人头疼的问题。VMR(VersionManager)提供了一个统一的界面来管理多种编程语言的SDK,简化了开发环境管理。本文将深入探讨VMR的安装、配置和使用。2.VMR简介......
  • 带你0到1之QT编程:二十六、实战应用之翻转动画的实现
    此为QT编程的第二十六谈!关注我,带你快速学习QT编程的学习路线!每一篇的技术点都是很很重要!很重要!很重要!但不冗余!我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点!码农不易,各位学者学到东西请点赞支持支持!开始部分:总:在开发过程中,难以避免有些高级动画的实现,例如翻......
  • STM32项目实战:基于STM32U5的智能大棚温控系统(LVGL),附项目教程/源码
    《智能大棚温控系统_STM32U5》项目完整文档、项目源码,点击下方链接免费领取。项目资料领取https://s.c1ns.cn/F5XyUSTM32项目实战之“智能大棚温控系统”(基于STM32U5)今天小编来分享一个《智能大棚温控系统》的项目案例,硬件平台是STM32U5开发板+资源扩展板+显示触摸屏+仿真器,项......
  • inline 函数:让你的 C++ 代码飞起来——深度剖析与实战技巧
    你是否曾经为C++代码中的函数调用开销感到烦恼?每次函数调用都需要创建栈帧、传递参数、跳转执行,这些看似微小的操作,累计起来就会成为性能瓶颈。在对性能要求苛刻的程序中,这些开销可能会影响到整体表现。今天,我们要聊的就是一个解决方案——inline函数。想象一下,如果编译器......
  • KubeSphere 实战指南:KubeSphere 和 K8s 集群彻底卸载与重装全攻略
    KubeSphere最佳实战:KubeSphere和K8s集群卸载重装完全指南本指南为一篇实战短文,旨在帮助您快速掌握如何在现有服务器上彻底卸载KubeSphere和K8s集群并完成重装部署。实战服务器配置(架构1:1复刻小规模生产环境,只是配置略有不同)主机名IPCPU内存系统盘数据盘用......
  • 第14章 Nginx WEB服务器企业实战
    万维网(WORLDWIDEWEB,WWW)服务器,也称之为WEB服务器,主要功能是提供网上信息浏览服务。目前主流的WEB服务器软件包括:Apache、Nginx、Lighttpd、IIS、Resin、Tomcat、WebLogic、Jetty。本章介绍Nginx高性能WEB服务器、Nginx工作原理、安装配置及升级、Nginx配置文件深入剖析......