浅析文件上传漏洞

您所在的位置:网站首页 如何查找网页漏洞 浅析文件上传漏洞

浅析文件上传漏洞

2023-03-13 11:45| 来源: 网络整理| 查看: 265

 

0x01简介

文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识。俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用。此篇文章主要分三部分:总结一些常见的上传文件校验方式,以及绕过校验的各种姿势,最后对此漏洞提几点防护建议。

0x02文件上传检测

(一)客户端检测

1. JavaScript本地验证

在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式

 

判断方法:1.响应迅速

                  2.查看网页源代码

 

(二)服务器端检测

1.MIME类型校验(Content-Type字段)

代码:

1   echo "Sorry, we only allow uploading GIF images"; 6  7 exit; 8  9 }10 11 $uploaddir = 'uploads/';12 13 $uploadfile = $uploaddir.basename($_FILES['userfile']['name']);14 15 if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)){16 17 echo "File is valid, and was successfully uploaded.\n";18 19 } else {20 21 echo "File uploading failed.\n";22 23 }24 25 ?>

 

2.文件扩展名校验(白名单、黑名单)

代码:

1   echo "We do not allow uploading PHP files\n";10 11 exit;12 13 }14 15 }16 17 $uploaddir = 'uploads/';18 19 $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);20 21 if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)){22 23 echo "File is valid, and was successfully uploaded.\n";24 25 } else {26 27 echo "File uploading failed.\n";28 29 }30 31 ?>32 33

 

 

3.文件头内容检验(eg:jpg文件头为FFD8)

 

4.自定义正则表达式

 

0x03绕过上传检测

(一)绕过客户端检测

1.使用firebug插件删除验证函数或者浏览器禁用JS,直接上传脚本文件

2.抓包改包。上传图片马,抓包改后缀为脚本文件后缀

 

(二)绕过服务器端检测

1.绕过 MIME类型校验(Content-Type字段)

使用BurpSuite抓包,修改Content-Type字段为允许上传的类型

 

2. 绕过文件扩展名校验

(1)绕过黑名单校验:①找黑名单中的漏网之鱼

                                      ②大小写绕过

(2)白名单:①%00截断

                       ②配合Web容器的解析漏洞

3.绕过文件头内容校验

使用图片马      

生成图片马: copy  /b 1.jpg+1.php  2.jpg

 

0x04文件上传漏洞防御

1.文件上传目录设置不可执行

2.检查文件类型(后缀、MIME)

3.使用随机数改写文件名

4.单独设置文件服务器的域名



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3