zoukankan      html  css  js  c++  java
  • 文件上传绕过

      对于整个HTTP请求包来说,所有内容都是用户可控的,只是请求包中的几个点有可能是后台服务器的检测重点:

    1 Content-Length  上传内容大小
    2 MAX_FILE_SIZE   上传内容的最大长度
    3 filename      上传文件名
    4 Content-Type    上传文件类型
    5 请求包中的乱码字段  上传文件的内容
    6 有可能存在请求包中的可控点还有上传路径

    一、客户端绕过

      利用抓包工具(如BURP),抓包改包。将原上传正常格式的文件变为 php、asp等文件

      如果是JavaScript验证,可以使用 IE 禁用 js(火狐的noscript插件也行)。

    二、服务端绕过

      BURP抓包,修改相应值,修改文件名位置 filename ,文件类型位置 Content-Type

      1、文件类型

        控制文件类型的是  Content-Type  ,我们需要将文件类型改为允许上传的文件类型。

      2、文件头

        找到请求包中的文件内容位置,在一句话木马内容的前面加上一些文件头信息

      3、文件后缀名

        对于黑名单的绕过,如php、asp、jsp,可以先试试 在文件名后添加空格 或 大小写的组合。

    另外能被解析的文件扩展名列表:
    jsp jspx jspf
    asp asa cer aspx
    php php2 php3 php4 ph5 phtml
    exe exee

       4、过滤绕过

        如果遇到,上传一个php被自动改成其他类型的文件,那么可能是php被过滤了,那么这个时候,可以尝试改后缀名为:pphphp。原理:过滤了  第一个php,分开的p和结尾的hp就组合成为 php

      5、文件重写

        直接传个 带小马的gif ,再传个 htaccess 重写解析规则

    .htaccess 文件内容:
    <FilesMatch "上传的文件名">
        SetHandler application/x-httpd-php
    </FilesMatch>
  • 相关阅读:
    被刷登录接口
    移动端布局方案
    容易遗忘的Javascript点
    java 笔记02
    java 笔记01
    C# 日常整理
    reac-native 0.61开发环境
    DOS命令收集
    vue整理日常。
    php7.1+apache2.4.x+mysql5.7安装配置(目前windows)
  • 原文地址:https://www.cnblogs.com/AardWolf/p/10187803.html
Copyright © 2011-2022 走看看