文件上传绕过的一些思路

  • 如果只有前端检查直接改为shell.php.jpg绕过检测然后再上传截包改为shell.php
  • 如果代码检查文件类型则截包改文件类型改成 image/png
    在这里插入图片描述
    文件上传绕过的一些思路_第1张图片
    文件上传绕过的一些思路_第2张图片
  • 0x00截断(shell.php空格.jpg再截包把%20改为00),或者命名为shell.php%00.jpg,再截包urldecode
    文件上传绕过的一些思路_第3张图片
    文件上传绕过的一些思路_第4张图片
    文件上传绕过的一些思路_第5张图片
    在这里插入图片描述
  • 利用解析漏洞IIS6.0、IIS7.5、Apache、Nginx,改文件名test.php;.jpg /test.asp/test.jpg test.jpg/.php等进行绕过

IIS 6.0

(1) 目录解析
以*.asp命名的文件夹里的文件都将会被当成ASP文件执行。
(2) 文件解析
*.asp;.jpg 像这种畸形文件名在“;”后面的直接被忽略,也就是说当成 *.asp文件执行。

IIS 7.0/7.5

IIS7/7.5在Fast-CGI运行模式下,在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件;找个地方上传 test.jpg ,然后找到 test.jpg 的地址,在地址后加上 /xx.php 即可执行恶意文本。图片内写入一句话内容。

Apache

例如:test.php.360,无法识别360的后缀apache就会进行修补,继续向左识别直到能识别文件类型为止。Apache文件解析漏洞与用户的配置有密切关系,严格来说属于用户配置问题 ;Apache默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法识别(不在mime.tyoes内),则继续向左识别,当我们请求这样一个文件:shell.xxx.yyy

Nginx

例:test.jpg/x.php,对任意文件名,在后面添加 /任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加test.jpg/x.php进行解析攻击。

  • 黑名单检测绕过
    这类型只是针对黑名单里规则里的文件后缀进行检测,有很多思路
    (1)文件名大小写绕过
    (2)特殊文件名 例如phtml、cer等
    (3)php文件包含,如果无解析漏洞可用,有文件包含可以使用文件包含使图片或者其它格式的文件解析为php (例如DVWA高难度等级的文件上传使用文件包含来解析)
    (4).htaccess文件攻击;黑名单没有限制.htaccess文件的上传,我们可以构造一个

建一个.htaccess 文件然后上传,里面的内容如下:


SetHandler application/x-httpd-php

这个时候就再上传一个文件名字是halo的文件,不要后缀名,然后里面是一句话木马,用菜刀连接。
文件上传绕过的一些思路_第6张图片

你可能感兴趣的:(中间件漏洞)