Web安全深度剖析—上传漏洞

**文件上传漏洞:**只要web应用程序允许上传文件,就有可能存在文件上传漏洞,其漏洞危害大于Sql注入,可直接向Web服务器注入后门,拿到webshell。
**

Web容器的解析漏洞:

IIS6.0版本(windows):

1,当建立*.asa和*.asp格式的文件夹时,其文件夹中的任意文件都被IIS当作ASP文件来解析。
2,当文件格式为*.asp;1.jpg时,其文件内的内容也会被当作ASP脚本解析执行。
WebDav漏洞(基于HTTP1.1的通信协议,其扩展了HTTP协议,支持了更多的HTTP请求方法:
支持了更危险的PUT(上传本地文件到服务器),COPY(修改已经上传至服务器的文件名称),DElETE(删除服务器文件)等方法
OPTION方法:可测试服务器端支持的HTTP请求方法(通过allow字段获取)

Apache1.x和2.x版本(Linux)

1,对于不认识的扩展名,会从后面往前解析,直到出现认识的扩展名为止,如果都不认识,则会暴露源码。
例如:123.php.hh.tar文件会被apache解析为123.php文件。
另外apache认识的扩展名可在配置文件/conf/mine.types中查看

PHP CGI 解析漏洞

URL:http://xx.xx.xx.xx/456.jpg/123.php
说明:在上述URL中,123.php文件是不存在的,456.jpg文件是存在的,这种情况下456.jpg文件会被识别为php文件并进行解析。
原因:php cgi中的x_pathinfo选项开启导致URL中123.php是不存在的文件,456.jpg会被递归解析。

绕过上传漏洞:

文件上传的流程:
1,客户端通过JS代码验证其扩展名是否相同
2,服务端通过随机数重命名上传的文件,防止文件重复
客户端检测:
任何客户端检测都是不安全的,客户端验证是防止用户输入错误,减少服务端开销。
1,修改HTML前端验证代码绕过
2,使用Burpsuitr修改文件扩展名参数绕过
服务端检测:
白名单扩展名过滤:
黑名单扩展名过滤(不安全):
文件类型检测:
文件重命名:

文件上传漏洞防护&修复

上传漏洞形成的主要原因:
1,黑名单过滤不安全
2,目录过滤不严,利用解析漏洞,创建可执行的目录
3,上传的文件未命名,可直接利用解析漏洞执行执行
防护:
1,白名单防护
2,对文件进行随机重命名
3,web容器配置

Guess you like

Origin blog.csdn.net/weixin_44431280/article/details/121436297