文件上传漏洞是所有漏洞中最为直接,有效的获取服务器权限的方法。但是想要利用好他并不容易,因为他的上传姿势实在是太过花哨(多)。所以这里介绍一些简单的上传姿势。望大牛误喷
shell上传条件:
1、上传点
2、绝对路径
3、要有权限
文件上传检验姿势
1、客户端javascript校验(一般只校验后缀名)
2、服务端校验
①文件头content-type字段校验(image/gif)
②文件内容头校验(GIF89a)
③后缀名黑名单校验
④后缀名白名单校验
⑤自定义正则校验
3、WAF设备校验(根据不同的WAF产品而定)
开始上传(先试着上传小马,然后在上传大马,因为有时大马更容易被吃掉)
1、直接上传shell,即php文件 (对文件类型不做限制)
2、更改后缀
上传其他允许上传格式的文件例如png、jpg。然后通过bp抓包再改后缀为php
(在前端验证黑白名单。判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。一般是javascript脚本)
3、利用解析漏洞(即在文件的绝对路径后加上 /xx.php)
上传例如png的文件,利用解析漏洞 (含有解析漏洞的web服务器,iis6.0,iis7.0,iis7.5,Nginx低版本)
4、不可识别的后缀 (服务器端为黑名单验证)
上传例如shell.php.abc文件,服务器因为不能识别abc后缀,所以向前查找可解析的