使用工具
- 一句话代码——用于执行Webshall程序
- 中国菜刀——远程控制
- 御剑——扫描网站后台登录页面
- iiswrite——PUT文件上传工具
文件上传漏洞是什么
文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传漏洞的利用技术门槛非常的低,对于攻击者来说很容易实施。
文件上传漏洞本身就是一个危害巨大的漏洞,WebShell更是将这种漏洞的利用无限扩大。大多数的上传漏洞被利用后攻击者都会留下WebShell以方便后续进入系统。攻击者在受影响系统放置或者插入WebShell后,可通过该WebShell更轻松,更隐蔽的在服务中为所欲为。
这里需要特别说明的是上传漏洞的利用经常会使用WebShell,而WebShell的植入远不止文件上传这一种方式。
Webshall
Webshall 是一种以网页形式存在的命令执行环境,常见的命令有
<?php eval($_POST[a]); ?>
<script language="php">eval($_POST[a]);</script>
基本步骤
上传条件(网站拥有相关漏洞可以利用)
网站拥有上传漏洞,例如一些用户头像上传、图片上传、文档上传等。大部分网站在代码中会存在一定过得检查机制。上传木马程序
上传木马程序通常需要绕过层层过滤,大部分网站在代码中会存在一定过得检查机制。需要一定的技巧与漏洞去绕过这些检查方法
(1)客户端检查:攻击者可以通过NC,Fiddler等断点上传工具轻松绕过客户端的检查
(2)服务器端进行了黑名单检查:忽略了大小写,如将.php改为.Php即可绕过检查。
(3)在服务器端进行了白名单检查:忽略了%00截断符,如应用本来只允许上传jpg图片,那么可以构造文件名为xxx.php%00.jpg,其中%00为十六进制的0x00字符,.jpg骗过了应用的上传文件类型检测,但对于服务器来说,因为%00字符截断的关系,最终上传的文件变成了xxx.php。
(4)文件上传后修改文件名时处理不当:攻击者线上传允许上传的文件,然后通过相应的修改文件漏洞修改文件扩展名构造木马程序。一些应用在服务器端进行了完整的黑名单和白名单过滤,在修改已上传文件文件名时却百密一疏,允许用户修改文件后缀。如应用只能上传.doc文件时攻击者可以先将.php文件后缀修改为.doc,成功上传后在修改文件名时将后缀改回.php。
a.通过COPY,MOVE命令修改文件
b.通过网站自身漏洞,例如数据库备份选项
(5)第三方插件时引入,好多应用都引用了带有文件上传功能的第三方插件,这些插件的文件上传功能实现上可能有漏洞,攻击者可通过这些漏洞进行文件上传攻击。获取文件的上传目录
(1)通过上传文件再下载获得相应下载路径
(2)通过后台扫描获得上传目录
(3)寻找网站框架,获得框架目录。中国小刀获取Webshall权限
防御
- 尽量减少,甚至消除网站的文件上传功能
- 在网站后台代码中设置混淆文件
- 精致文件检查
- 限制上传文件缓存目录权限