文件上传绕过小结

前端检测绕过

关闭JS或者自己写一个上传页面,也可以根据情况使用其他方法。比如如果检测的是文件类型和文件后缀,可以先把要传的木马文件改一下后缀,抓包的时候在改回来。

内容检测绕过

常见的比如检测PHP的标签:<?php,对于这种情况,在开启了相应配置时,可以采用短开标签,比如<?=。或者没检测大小写的话切换大小写。如果还不行可以考虑<script language="php">这种常用于phtml的标签。

对于检测文件头是否是图片的,可以在文件开头补上GIF89a。

还有一些其他的内容检测手段,具体情况可以具体分析。

黑名单绕过

一般黑名单都是检测文件类型和文件后缀。文件类型实在是太容易修改了,直接改content-type即可,这里主要讨论关于文件后缀的绕过。黑名单这东西很难写的特别全,我们主要是利用他的这个点。比如限制了php,我们可以上传phtml,php3,php5等等,甚至可以上传.user.ini,.hatccess这种配置文件。还可以利用一些解析漏洞来进行绕过,下面单独讲一些解析漏洞。

解析漏洞

解析漏洞只有在特定的版本存在,有时间我在补充版本。

IIS解析漏洞

以.asp .asa等作为后缀命名的文件夹下面的文件,都会被当作可执行文件解析,而不会考虑这些文件夹下文件的后缀。

;后面的部分不被解析,比如1.asp;1.jpg,但是如果你利用黑名单检测,你的代码检测到的最终后缀将是jpg。

IIS畸形解析漏洞

比如上传了一个1.jpg,访问的时候输入1.jpg/1.php,会被当作PHP执行。

特定版本和设置的nginx也存在上述漏洞。

apache解析漏洞

一些apache解析文件时,从后往前来确定文件的后缀是啥,比如xxx.php.rar会按照php进行解析。

未完待续

白名单绕过

白名单是最难绕的,一般也是靠解析漏洞或者他没限制传配置文件来绕。比如利用%00截断,传输.user.ini。当然,也可以结合文件包含漏洞来解析木马。

结合文件包含

如果有文件包含,白名单都不管用,任何被包含的文件,都会被解析,文件名是啥都无所谓了。

原文地址:https://www.cnblogs.com/kevinbruce656/p/13517990.html