一.文件上传漏洞之扩展名限制
前一篇文章详细讲解了文件上传漏洞的原理、一句话木马和Caidao的基本用法,涉及JS绕过文件上传、MIME绕过文件上传、大小写绕过文件上传、点和空格绕过文件上传、htaccess文件绕过上传,这篇文章将继续分享文件上传漏洞。下面参考了Fox老师的upload-labs思维导图,供大家学习。
1.PHP345文件绕过上传
PHP3代表PHP版本3,这里用于文件绕过检测。一般的软件都是向下兼容,PHP3代码,PHP5同样兼容能够执行。如下图所示,fox.php5文件同样能够正常上传。
2.Windows ::$DATA绕过
Windows ::$DATA绕过只能用于Windows,Windows下NTFS文件系统有一个特性,即NTFS文件系统在存储数据流的一个属性DATA时,是请求a.php本身的数据。如果a.php还包含了其他的数据流,比如a.php:lake2.php,请求a.php:lake2.php::$DATA,则是请求a.php中的流数据lake2.php的流数据内容。简单来说,就是在数据后面加上::$DATA实现绕过,fox.php::$DATA返回fox.php数据。
上传成功如下图所示,然后可以直接访问upload/fox.php文件。
3.Apache解析漏洞上传
Apache是从右到左判断解析,如果为不可识别解析,就再往左判断。比如1.php.xxx对Apache来说xxx是不可解析的,所以就会解析成1.php,这就是该漏洞的实现原理。
如上图所示,将本地“fox.php”修改为“fox.php.xxx”,然后点击上传。