首页 > 编程知识 正文

文件上传漏洞利用方式,常见的上传漏洞及利用方法

时间:2023-05-06 11:05:43 阅读:21674 作者:616

0x01文件上传漏洞

文件上载漏洞顾名思义,就是上载用户可以执行的脚本文件,并允许用户执行服务器端命令。 文件上载通常是get shell最常用、最直接的方法。 但是,文件上传本身是正常的业务需求,因此问题是如何安全地上传。

0x02文件上传的触发条件

上传的文件被解释为Web容器并运行

用户可以直接或间接访问从网页上传的文件

用户上传的文件通常不能通过网站上的程序压缩或更改内容

0x03从防御的观点上传

通常,防止文件上传漏洞分为几个方面,但大致有以下几点

1 .客户端javascript验证

在浏览已加载的文件且尚未单击上传按钮时,可能会出现“仅允许上传xxx扩展名的文件”等内容,但此时不会发送数据包。

旁路方法:

关闭浏览器的javascript功能

用burp抓住包改变扩展名

检测MIME类型

客户端判断:

$ _ files [ ' my file ' ] [ ' type ' ]==' image/JPEG '

服务端判断:

$ fileinfo=finfo _ open (fileinfo _ mime;

$mimetype=finfo_file($fileinfo,$file_true_name );

旁路方法:

在burp中抓住包,修改内容类型

3 .检查内容

服务器端有读取上传的文件,判断文件内容的时候吗? php等

旁路方法:

只要检查文件头,就可以找到兴奋的猎豹图片,然后在winhex上在图片末尾写php代码

4 .检查文件扩展名

检查文件扩展名最直接有效的方法通常基于白名单或黑名单。

黑名单绕道

使用可以解析的其他文件扩展名

jsp jspx jspf

asp asa cer aspx

php phtml php3 php4 php5 PHP phtm

exe exee

绕过特殊文件名

例如,上传时显示test.asp .或test.asp_ (下划线为空格。 这里用下划线表示。 )的命名方法在windows上是不允许的。 请注意,如果绕过验证,windows系统将自动移除后面的点和空间,但Unix/Linux不具有此特性。

舍去00

在某些情况下,服务器端可能具有特定的扩展名,并且正好可以在其他位置自由读取php文件。 此时,可以立即传递图像在这里观看,观看时使用

•Apache分析文档的规则是从右向左判断分析,如果是扩展名无法识别的文档分析,则向左判断。 例如,如果test.php.owf.rar“.owf”和后缀“. rar”是apache的不可识别分析,则apache将test.php.owf.rar称为PHP www.XXX.XXX .

•Apache的httpd.conf的AddHandler php5-script .php在php上运行,即使文件名包含. php,即使文件名为test2.php.jpg。 (配置错误)

nginx分析漏洞(Nginx8.03 ) ) )。

如果打开了cgi.fix_pathinfo) )。

访问www.xx.com/phpinfo.jpg/1.php时,phpinfo.jpg将被解析为php

其中1.php是不存在的文件

0x06参考

某大人物的PPT

文件上传框架

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。