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. docker安装mysql镜像和容器

    下拉镜像 docker pull mysql/mysql-server:5.5 后面的mysql标签是版本号,是可选择的,有: 5.5 5.6 5.7 8.0 创建mysql5.5的容器 docker ...

  2. java.util.Date 与 java.sql.Date

    java.sql.Date 继承 java.util.Date 区别: 1.java.sql.Date 一般用于数据库 2.java.sql.Date 没有时分秒,涉及时分秒的函数都会报异常(且这些方 ...

  3. 使用.net Core 3.1 多线程读取数据库

    第一步:先创建一个DBhepler类,作为连接数据库中心,这个不过多说明,单纯作为数据库的连接........... 1 public static string Constr = "数据库 ...

  4. 痞子衡嵌入式:了解i.MXRTxxx系列ROM中灵活的串行NOR Flash启动硬复位引脚选择

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRTxxx系列ROM中灵活的串行NOR Flash启动硬复位引脚选择. 关于 i.MXRT 系列 BootROM 中串行 NOR ...

  5. canvas实现任意正多边形的移动(点、线、面)

    前言 我在上一篇文章简单实现了在canvas中移动矩形(点线面),不清楚的小伙伴请看我这篇文章:用canvas 实现矩形的移动(点.线.面)(1). ok,废话不多说,直接进入文章主题, 上一篇文章我 ...

  6. Gradle入门第一集【下载,安装和测试】

    参考:https://www.cnblogs.com/panchanggui/p/9394760.html 1,http://services.gradle.org/distributions/链接下 ...

  7. 以初学者的角度理解:SQL实现关系除法

    以初学者的角度理解:SQL实现关系除法 相信各位在学习SQL的时候,由于没有一家SQL语言提供除法命令而只能自己写一个.而网上大多就是四步骤加一个模板: select distinct A.X fro ...

  8. P4180 [BJWC2010]严格次小生成树

    P4180 [BJWC2010]严格次小生成树 P4180 题意 求出一个无向联通图的严格次小生成树.严格次小生成树的定义为边权和大于最小生成树的边权和但不存在另一棵生成树的边权和在最小生成树和严格次 ...

  9. P4168-蒲公英-分块

    蒲公英 暴力分块思想.分块的思想与莫队相同.它能将时间和空间复杂度均摊XD belong表示所属区块,num维护区间颜色出现次数,maxx维护区间max值.查询时只需要比较两端的区块即可. #incl ...

  10. K8S系列第三篇(Docker网络)

    目录 docker 网络 Docker 的四种网络模 一.网络基础 1.网络名称空间介绍 2.创建一个命名空间 1)Veth设备对 2)Veth设备操作 1> 创建Veth设备对 2> 绑 ...