0x0 WHAT-什么是文件上传漏洞

文件上传漏洞是指服务器未对用户上传的文件做限制,导致用户可以肆意上传可执行的文件
黑客上传恶意可执行文件,导致网站被控制

0x1 WHY-上传漏洞可能产生的原因

0x1.1 本地过滤绕过

  • 用户可以通过禁用JS来绕过

0x1.2 远端限制绕过

  1. 更改请求消息头绕过,修改content-type - content-type:image/jpg
  2. Magic检测绕过 - 在shell前添加字节进行绕过

  3. 后缀绕过 - php / php5 / pht / phtml / shtml / pwml / phtm /pHp

  4. 系统命名绕过 - Windows系统中,上传 index.php. 会重命名为 . ,可以绕过后缀检查 - index.php%20 、 index.php:1.jpg 、 index.php::$DATA - index.php/. 或者 ./aa/../index.php/.
  5. 查找中间间可能存在的解析漏洞
    • Apache
      • 从右往左解析,如果解析失败就解析下一个后缀
    • nginx
      • 畸形解析漏洞:test.jpg%00xxx.php
      • 访问链接加:/xxx.php test.jpg/xxx.php
    • iis:
      • IIS6.0文件解析 xx.asp;.jpg
      • IIS6.0目录解析 xx.asp/1.jpg
      • IIS7.0畸形解析 xxx.jpg/x.asp

0x1.3 攻击技巧

  1. Apache重写Getshell
    • 上传.htaccess 将.png文件按照php文件进行解析 AddType application/x-httpd-php .png php_flag engine 1

0x2 防御技巧

  1. 使用白名单限制上传文件的类型
  2. 使用更严格的文件类型检查方式
  3. 限制Web Server对上传文件夹的解析