概念介绍
- 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等。该方式相对安全。
总结
通过实验可以看出,木马的直接利用难度很高,一般通过文件上传,攻击者很难猜出木马在服务器的路径。木马的利用,大都是攻击者通过其他方式获取了shell权限,为了下次控制服务器的方便,在服务器上留下的后门(正如木马本身的含义)。