文件上传

文件上传

跨清溪半里桥

原理:网站一般有文件上次功能,当校验不严格时,就可以上传恶意文件,传递给解释器执行后,可以在服务器上执行恶意代码,进行数据操作,文件管理,命令执行。

后缀绕过:
1
php: php5,php3,php2,pht,pHTML
1
ASP: asa,cer,cdx
1
ASPX: ascx,ashx,asac
1
JSP: jsp,jspx,jspf
类型绕过:
  1. Content-Type

    1
    2
    3
    4
    5
    6
    7
    image/png
    image/gif
    image/jpeg
    application/octet-stream
    application/pdf
    application/zip
    text/csv
  2. 前端—禁用js

  3. 文件解析规则

  4. .htaccess规则文件

    1
    2
    3
    4
    5
    6
    7
    AddType application/x-httpd-php .jpg

    &&

    <FilesMatch "shell.jpg">
    SetHandler application/x-httpd-php
    </FilesMatch>
  5. windows环境特性

    1
    2
    ::$DATA     
    %00截断,保存文件时是路径拼接,%00截断了会显示为空格,假如/upload/ss.php /20246666.jpg 访问ss.php可
  6. 大小写

  7. 双写

  8. .user.ini 需要同目录下存在php文件

    1
    2
    GIF89a                  
    auto_prepend_file=a.jpg
  9. 点空格

  10. 文件头

    1
    添加GIF89a
  11. 条件竞争

常见的web容器有iis,tomcat,nginx,Apache等
iis5.x iis6.x解析漏洞

当创建.asp的文件目录时,在此目录下的任意内容,服务器都解析为asp文件,如mengxing.com/aa.asp/aa.jpg为asp脚本文件

服务器默认不解析;后面的内容,所有url/aa.asp;jpg

微软查找规则:从头部找 . 号,然后查找 ; 号,找到.asp;jsp,如果有则内存截断,查找 / ,如果有则内存截断

微软不认为是一个漏洞,所有没有补丁

iis7.0 7.5 配置错误导致漏洞 php-fcgi请求限制取消

把1.php木马修改为1.png添加/.php 可以访问

phpstudy+nginx解析漏洞

phpstudy > 8.1.07

错误配置 php.ini 配置文件中 cgi.fix_pathinfo=1

制作图片马,访问一个sdas.php 不存在的php就可以访问 例55.png/sdsa.php

nginx漏洞

低版本中有PHP-CGI导致的文件解析漏洞,当url中不存在此文件时,默认向前解析,在php的配置文件cgi.fix-pathinfo中,默认开启

阿帕奇解析漏洞

apache在1.x和2.x版本中,从右往左判断后缀,假如baidu.com/shell.php.aaa.sss,会别识别为shell.php

fuzz绕过
1
https://github.com/c0ny1/upload-fuzz-dic-builder
1
python3 upload-fuzz-dic-builder.py -l asp                   生成asp字典

上传文件名为:test,可以上传后缀为jpg,后端语言为php,中间件为apache,操作系统为Windows,输出字典名为upload_filename.txt的fuzz字典

1
python3 upload-fuzz-dic-builder.py -n test -a jpg -l php -m apache --os win -o upload_file.txt
On this page
文件上传