浅析文件上传漏洞 |
您所在的位置:网站首页 › 如何查找网页漏洞 › 浅析文件上传漏洞 |
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 |