前言:本文参考了一些文章,如有侵权请留言删除。
该文章基于upload-labs基础靶场进行编写
0x00 任意文件上传漏洞原理
由于服务端代码未对客户端上传的文件进行严格的验证和过滤,导致攻击者可以上传任意类型的脚本文件,进而获得服务器的权限。
危害:攻击者上传恶意脚本文件控制网站甚至是服务器,这个恶意的脚本文件又称为webshell,利用webshell,可以查看服务器目录,文件,执行系统命令等等。
恶意脚本的类型可以为:php、jsp、asp、aspx等等
0x01 文件上传绕过思路
通常使用各种手段来绕过对文件后缀的校验,比如%00截断、后缀名大小写/双写、前端验证绕过、利用条件竞争、配合文件包含等等
00 前端js验证
只在客户端浏览器使用js进行检测,没有发送到数据包到服务器
步骤:
1、上传图片马
2、brupsuite抓包修改文件后缀为php
3、上传成功,蚁剑连接
01 MIME类型检测
MIME信息:content-type,改其信息可以欺骗,如.gif对应image/gif
步骤:
1、上传脚本文件
2、brupsuite抓包修改Content-Type: application/octet-stream修改为image/jpeg
3、上传成功,蚁剑连接
02 黑名单绕过
黑名单:指的是不允许上传某些后缀名的文件
可以上传其他类型后缀可以解析但不在黑名单内的文件,比如php3 php4 php5 phtml PHphpp
".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa