概念介绍
- WebShell网页木马文件
-
最常见利用文件上传漏洞的方法就是上传网站木马(WebShell)文件,根据开发语言的不同又分为ASP木马、PHP木马、JSP木马等,该木马利用了脚本语言中的系统命令执行、文件读写等函数的功能,一旦上传到服务器被脚本引擎解析,攻击者就可以实现对服务器的控制。
-
一句话木马(小马):功能简单,需要配合客户端使用,隐蔽性强,容易通过变形隐藏特征,绕过过滤
-
大马:功能完善,直接使用浏览器即可利用,隐蔽性相对较弱,通常需要通过加密等方式来隐藏特征
-
实验场景一:文件上传
-
检测文件MIME类型的文件上传传漏洞利用
通过把木马eval.php拓展名改成jpg,再通过代理抓包,将拓展名改回php
实现绕过MIME类型检测
-
服务端黑名单检测文件扩展名的文件上传漏洞利用
把木马eval.php拓展名改成jpg,再通过代理抓包,send到BurpSuitde的repeat模块
尝试各种拓展名修改绕过黑名单如(拓展名改为Php,PHP,php5,php6等等)
发现Php可以绕过检验
猜测推断或者利用其他功能找出木马在服务器的路径
找到路径后,可以直接配合CKnife使用来控制整个服务器
文件上传漏洞防护
- 黑名单检测:一般有个专门的blacklist文件,里面包含各种常见的危险脚本文件的拓展名,如:php,asp,jsp。该方式过滤的完整度受限于blacklist内容,不够安全
- 白名单检测:只允许系统接受的文件类型通过,如只能上传png,jpg,zip,rar等。该方式相对安全。