web中间件作为web安全的重要一块,经常会有人问balabala,虽然有很多已经人尽皆知并且基本不再构成威胁了,但是还是有必要说一下,了解历史,了解我们从哪里来

鉴于内容实在是太多,本来打算一起写完,篇幅太长不方便阅读,有点恶心,就改分篇写了

IIS是十分常见的中间件,只适用于微软windows操作系统

找了个freebuf上的图

(1)

1.解析漏洞

IIS6.0

(1)以*.asp为命名的文件夹下的任何文章会被解析为.asp格式

(2)*.asp;.jpg这种格式的文件,后缀会被;所截断,分号后的被忽略,文件被当做asp执行

在IIS6.0下,*.asa  *.cer  *.cdx也会被解析,和*.asp一样,比如你传lcx.asp与传lcx.cer一样的

这里有个问题说一下,如果上传的文件被重命名了,也就是说文件名不可控,比如以上传时间为名字,用不了文件名截断即(2)点,可以往文件夹名称解析即(1)点方向靠

所以防御的方向就是:

(1)在服务器上限制上传目录的执行权限不让他执行脚本

(2)也不允许新建目录防止出现上文说的文件夹名称解析漏洞

(3)将上传的文件重命名,什么随机数,时间戳都用上

IIS7.0/7.5

与PHP配合,访问phpinfo.php,看一眼server API写的啥

如果如图中所示,FastCGI开着,则会出现在任意文件名后加上/.php,此文件会被当做PHP文件解析

例如 lcx.txt/.php    =>   lcx.php

防御办法除了与IIS6.0相同的思路,还要把php.ini中这一项

去除注释,值改成0

2.PUT任意文件写入

漏洞产生的原因是在web服务扩展中开启了WebDAV,配置了可以写入的权限

看到WebDAV允许,写入打钩

推荐工具:桂林老兵iiswrite,用各种请求方式,什么PUT / MOVE 之类的往服务器中传后门文件,改文件名,菜刀连一波(具体不介绍了,网上相关教程很多,很老的东西了)

建议把这两个东西关了

3.IIS短文件漏洞

漏洞产生的原因是为了兼容MS-DOS程序,windows为文件名较长的文件生成了对应的windows 8.3的短文件名,攻击者可通过短文件名猜解对应的文件,访问下载敏感资源,绕过某些限制

dir /x一下可以看到短文件名长什么样

倒数第二列就是短文件名

短文件名是有一定规则的:

1.只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同);

2.后缀名最长只有3位,多余的被截断,超过3位的长文件会生成短文件名;

3.所有小写字母均转换成大写字母;

4.长文件名中含有多个“.”,以文件名最后一个“.”作为短文件名后缀;

5.长文件名前缀/文件夹名字符长度符合0-9和Aa-Zz范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件;

IIS8.0以下版本需要开启asp.net支持,IIS8.0及以上可不需要asp.net,转用OPTIONS与TRACE方法猜解

怎么猜解的,以低版本IIS为例

(2)

这个图很好的说明了猜解过程,一图胜千言

用类似正则的*代表未猜解的部分,根据返回特征码的不同进行判断猜解是否成功

但是这个短文件漏洞,限制实在太多,比如文件名太短就没有短文件,文件名太长后续内容你也猜不出来(最多就能确定前6个字符,而且带空格或者.啥的都会对猜解造成误判)个人认为比较鸡肋

修复的话,在命令行窗口下或者注册表中,关闭NTFS8.3文件格式支持

4.CVE-2015-1635(MS15034)

IIS6.0以上的Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2都可能中招

这是HTTP.SYS(一个系统核心组件)的一个远程代码漏洞,攻击者发送恶意请求的数据包,执行代码可读取IIS服务器中内存数据,甚至蓝屏

参考文章

http://www.ijiandao.com/safe/cto/12829.html

介绍得很全面

5.CVE-2017-7269

只影响Windows 2003 R2开启WebDAV服务的IIS6.0服务器(条件苛刻),一个远程代码执行漏洞

MSF中exp下载

https://github.com/zcgonvh/cve-2017-7269

可导入msf中使用

详细分析:https://paper.seebug.org/259/作者:k0shl

注:文中图(1)(2)出自

https://www.freebuf.com/articles/web/172561.html

随便转载,请标明作者出处

常见web中间件漏洞(一)IIS漏洞的更多相关文章

  1. 常见web中间件漏洞(四)Tomcat漏洞

    这部分好久没写了,继续更新web中间件漏洞思路整理(不复现) ,争取...整理完 前几篇指路链接: nginx: https://www.cnblogs.com/lcxblogs/p/13596239 ...

  2. 常见web中间件漏洞(五)weblogic漏洞

    继续整理有关中间件漏洞思路(仅做简单思路整理,不是复现,复现请参考大佬们的长篇好文,会在文章中列举部分操作) WebLogic是Oracle公司出品的一个application server,确切的说 ...

  3. 常见web中间件漏洞(三)Nginx漏洞

    nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,有  开源,内存占用少,并发能力强,自由模块化,支持epoll模型,可限制连接数,支持热部署,简单 ...

  4. 常见web中间件漏洞(二)Apache漏洞

    Apache(总联想到武直那个)是最常见,使用人数最多的一款web服务器软件.跨平台,多扩展,开源,用过的人都说好 Apache的漏洞主要集中在解析漏洞这一块 1.未知扩展名解析漏洞 Apache的一 ...

  5. Web中间件 - 常见漏洞总结

    *文章来源:https://blog.egsec.cn/archives/472 *本文将主要说明:Web中间件常见漏洞的产生原因以及修复方案 什么是Web中间件? 百度百科是这样解释的:中间件是介于 ...

  6. Web中间件常见漏洞总结

    一.IIS中间组件: 1.PUT漏洞 2.短文件名猜解 3.远程代码执行 4.解析漏洞 二.Apache中间组件: 1.解析漏洞 2.目录遍历 三.Nginx中间组件: 1.文件解析 2.目录遍历 3 ...

  7. 常见 WEB 安全漏洞(转)

    SQL注入 成因:程序未对用户的输入的内容进行过滤,从而直接代入数据库查询,所以导致了sql 注入 漏洞 . 思路:在URL处可以通过 单引号 和 and 1=1 and 1=2 等语句进行手工测试s ...

  8. 中间件漏洞之IIS

    IIS中间件漏洞 我们常见的中间件有IIS.Apache.Nginx,其中IIS中间件有什么漏洞呢? IIS 短文件名漏洞: 漏洞产生的原因是为了兼容MS-DOS程序,windows为文件名较长的文件 ...

  9. 常见WEB开发安全漏洞 原因分析及解决

    目 录 1 会话标识未更新 3 1.1 原因 3 1.2 解决 3 2 SQL注入 3 2.1 原因 3 2.2 解决 5 3 XSS跨站脚本编制 5 3.1 原因 5 3.2 解决 5 4 XSRF ...

随机推荐

  1. Mybatis学习(7)实现mybatis分页

    上一篇文章里已经讲到了mybatis与spring MVC的集成,并且做了一个列表展示,显示出所有article 列表,但没有用到分页,在实际的项目中,分页是肯定需要的.而且是物理分页,不是内存分页. ...

  2. buu 简单注册器

    一.本身对安卓逆向这块不是很熟悉,为了看这题稍微了解了一下,原来安卓虚拟机解释运行的是dex文件,和java的字节码不一样,然后是smail语法,这块我不会,所以找个了个神器来反编译2333,然后这题 ...

  3. 构造函数 析构函数的区别与联系 C#

    构造函数 __construct:是在对象被创建是自动调用的方法,用来完成初始化操作 构造函数有以下特点:1.构造函数的名字必须与类名相同:2.构造函数可以有任意类型的参数,但不能具有返回类型:3.定 ...

  4. ORM研究3 - odoo fields常用的字段属性

    之前我们已经讲解了odoo ORM中的一些对字段常用的API操作方法,今天我们继续研究一下Odoo orm中字段的一些通用属性字段的使用,学会它们可以为自己创建数据映射并使用有更好的帮助. 通用字段属 ...

  5. maven手动添加库文件

    项目应用到了ojdbc,dubbo等私有库,maven无法直接下载,需要手动下载后添加到maven本地库里面. 以下以ojdbc为例: 1.下载jar后,cmd添加到本地库: mvn install: ...

  6. 深入GraphQL 的使用语法

    深入GraphQL 的使用语法 对于GraphQL 的使用语法在上一节中已经大概介绍了基本的使用方式了,这一篇将会对上一篇入门做拓展,努力将所有的使用语法都覆盖到. 1. 终端语法 首先是介绍在前端查 ...

  7. jdk源码阅读-Object类

    native 关键字 private static native void registerNatives(); static { registerNatives(); } public final ...

  8. GeoServer Rest服务启动匿名认证的配置方法

    GeoServer Rest服务数据默认需要进行用户名.密码的认证,如不需进行该认证,则启动匿名认证即可,配置方式如下(针对war包发布的GeoServer应用): 在GeoServer war包的解 ...

  9. javascript学习五---OOP

    面向对象:JavaScript的所有数据都可以看成对象 JavaScript的面向对象编程和大多数其他语言如Java.C#的面向对象编程都不太一样.如果你熟悉Java或C#,很好,你一定明白面向对象的 ...

  10. JDK1.7HashMap死锁

    JDK1.7HashMap多线程问题 Java技术交流群:737698533 在看之前可以先看看JDK1.7的Hashmap的源码 HashMap在多线程情况下是不安全的,一个是数据的准确性问题,一个 ...