文件上传漏洞原理:它是指程序员在开发任意文件上传功能时,没有考虑文件格式后缀名的合法校验或者只考虑前端通过js进行后缀检验,这时攻击者上传恶意脚本代码到服务器上并访问,就会进一步影响服务器的安全。
文件上传漏洞防御:采用白名单策略,进行二次渲染过滤图片码、上传文件重命名。
文件上传的分类:前端js校验上传、MIME-type上传、黑白名单后缀名上传、文件头上传。
绕过方法:前端js校验上传,js脚本运行环境是浏览器,我们可以修改前端js代码或者删除达到上传。
MIME-type检测,由于服务器在检测content-type类型时,取得的变量来自于用户,所以利用Burp抓包,修改字段使其合法,达到上传任意文件。
文件头上传:利用Burp抓包,在恶意脚本前加上文件头就行,如:GIF89a。还可以利用图片码。
黑白名单后缀名检测:利用解析漏洞、截断上传、大小写绕过。
解析漏洞有些?
IIS6.0解析漏洞:①目录解析,原理:服务器默认把xx.asp目录下的文件都解析成asp文件。
②文件解析,原理:服务器默认不解析;后面的内容,因此被解析为xx.asp。
Apache 解析漏洞:原理:Apache解析文件规则是从右到左开始判断解析,若后缀名不可识别就再往左判断,如将test.php.a.b解析成test.php。
Nginx解析漏洞:原理:Nginx拿到URL后从右到左开始判断,一看是.php后缀,就当做php文件来执行,但1.php不存在,就把/1.php删去,继续将1.jpg文件当做php文件执行。
文件上传的原理与绕过方法。比较简单,内容单一,最下留情,谢谢!