文件上传(一)--IIS

本文最后更新于:2 年前

形成原因

文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。 这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。文件上传漏洞本身就是一个危害巨大的漏洞,WebShell更是将这种漏洞的利用无限扩大。大多数的上传漏洞被利用后攻击者都会留下WebShell以方便后续进入系统。

什么是WebShell?WebShell是黑客经常使用的一种恶意脚本,其目的是获得对服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等,其危害不言而喻。黑客通常利用常见的漏洞,如SQL注入、远程文件包含(RFI)、FTP,甚至使用跨站点脚本攻击(XSS)等方式作为社会工程攻击的一部分,最终达到控制网站服务器的目的。常见的WebShell编写语言为asp(aspx)、jsp和php。

IIS文件上传漏洞

目录解析漏洞

低版本的IIS(例如IIS6.0及以下版本)存在目录解析漏洞,如果在上传文件的路径下新建一个名为”.asp”的文件夹,那么上传到文件夹里面的所有文件都会被IIS视作asp文件来执行。即使代码层限制了上传文件的类型为png、gif、jpg等,我们也可以通过上传图片马的方式使IIS解析到一句话木马,再使用蚁剑、冰蝎等连接工具查看服务器目录,甚至执行命令。

如果CMS后台没有更改上传路径的功能,我们也可以使用burpsuite抓包来尝试出正确的上传路径。

一句话木马有哪些呢?

PHP:<?php @eval($_POST['pass']);?> ASP: <%eval request ("pass")%> ASPX:<%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>

这里的@符号意思是不报错,即使有错误也不报(掩耳盗铃),以免错误信息存入服务器日志,引起警觉。

那怎么生成图片马呢?用记事本、notepad++等程序打开正常的图片,并在最后加入一句话木马,保存即可。

文件名解析漏洞

低版本的IIS(例如IIS6.0及以下版本)也存在文件名解析漏洞,如果把文件命名为”*.asp;.jpg”,则文件名在“;”后面的部分直接被忽略,也就是说当成 *.asp文件执行。上传的jpg文件则是我们提前写好的图片马。

PUT攻击漏洞

所谓put攻击,是指利用http1.1中新增加的put方法上传木马。如果服务器上有对应资源,则后上传文件的会覆盖掉之前的文件;如果没有,则服务器上新增该文件。所以往服务器上增加文件的操作一般使用post方法。

如果IIS服务器端开启了webdav服务,以及所有用户的写入权限,那么我们可以进行put攻击。我们先使用IIS PUT Scanner这款扫描器,扫描C段内可以进行put攻击的服务器。然后我们把要上传的小马改成txt后缀,再用桂林老兵的IIS写入工具,用put方式上传txt后缀的小马,提交数据包以后可以访问文件所在位置确定是否上传成功。如果上传成功,则用move方式改变刚上传小马的文件名和后缀(asp,aspx,php等),这样小马就成功地上传到了服务器,我们也可以利用小马进一步对目标服务器进行操作。

总结

在下一篇笔记中,我会总结出另外几种与中间件以及http请求头有关的文件上传漏洞。


文件上传(一)--IIS
https://rookieterry.github.io/2021/10/06/文件上传(一)-IIS/
作者
HackerTerry
发布于
星期三, 十月 6日 2021, 5:57 下午
许可协议