Web中间件之IIS篇
Web中间件学习篇
本篇主要从IIS、Apache、Nginx、Tomcat四种常见中间件的IIS入手,介绍相关安全知识,遵循“中间件简介→如何搭建网站→安全配置分析→安全日志分析”的顺序进行学习,旨在梳理常见Web中间件的知识点,为Web安全学习打好基础。
IIS篇
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服务器, 分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网) 上发布信息成了一件很容易的事。 IIS最经典的版本是IIS6.0,最常见于Windows Server 2003系统中;IIS7.0则常见于 Windows Server 2008中。 目前(2017年)最新的版本是IIS10.0,常见于Windows Server 2016中。
IIS站点搭建
IIS相对于其它Web中间件而言,略有不同,使用了较多图形化界面操作进行相关配置,主要分为以下几步:
- 安装IIS服务
- 部署站点
- 修改站点配置
下面开始详细介绍如何搭建一个完整的IIS站点
环境介绍
操作系统:Windows Server 2003 Enterprise Edition IIS版本:IIS 6.0 站点类型:Asp
搭建步骤
安装IIS服务
依次点开 开始→控制面板→添加或删除程序,在应用服务器 前打勾,点击详细信息
勾选Internet信息服务(IIS),点击详细信息,然后添加IIS组件中的Web、FTP、NNTP和SMTP等全部四项服务
一路下一步安装即可
部署站点
启动IIS服务后,依次点开开始→控制面板→管理工具→Internet服务管理器(IIS管理器),打开IIS管理器
可以看见里面有一个默认站点,默认路径为C:\Inetpub\wwwroot
我们可以不用管它,另起一个站点,首先在Asp源码站点随意下载一个Asp源码包,再在C:\Inetpub\wwwroot路径下新建一个qing文件夹
然后在Internet服务管理器(IIS管理器)中新建一个网站
网站描述随意,在IP地址和端口配置中,选择网站IP地址为本机IP
网站路径指定为刚刚创建的qing文件夹
网站权限设置由于本例需要运行asp,因此勾选如下权限,写入权限一般情况下不勾选,下一步即可完成创建
此时将下载好的asp程序源码复制粘贴到qing文件夹中
修改站点配置
此时如果仅仅想打开qing文件夹下的html文件是可以的,但是还是无法动态运行asp,并且我们还想做到打开站点后默认页面为index.asp,这个时候就需要我们进一步设置了
首先右键我们新建新建的站点qing,选择属性,在主目录标签页选择如下的权限,同时点击配置
在选项标签页勾选启用父路径,在调试标签页勾选 调试标志下的两条,选择确定
!
在文档标签页,在启用默认内容文档处添加index.asp,实现打开站点后默认页面为index.asp的效果,然后将其一路上移至第一个默认内容文档,最后一路确定
此时还是不行的,还需要返回上级,找到Web服务拓展,根据下图所示,允许部分Web服务拓展
此时完成全部配置,打开浏览器(本机或同局域网均可),访问站点url即可
不得不说IIS6.0配置站点还是比较麻烦的,但是如果不按照步骤配置会出现以下症状:
- asp无法解析,以源码形式显示
- 您没有权限查看该页面
- 该页无法显示
IIS日志分析
Web日志是网站分析和网站数据仓库的数据最基础来源,也是网站被入侵排查入侵者和查找相关漏洞的关键所在,了解其格式和组成将有利于更好地进行数据的收集、处理和分析。
对于IIS而言,其日志格式种类较多,默认为W3C拓展日志文件格式,该内容可在站点属性中查看
选择W3C拓展日志文件格式后,点击旁边的属性,
- 在常规标签页可以看见日志按照多长时间划分、日志的默认路径、日志文件名的规则,
- 在高级标签页可以看见日志记录的字段和其含义(仅限于W3C拓展日志文件格式)
我们可以打开其中一份日志文件,可以看见其中记录了大量访问信息包括:访问时间 服务端名称 服务端IP 访问者IP等信息
完整字段含义如下:
顺便一提,由于不同的 Windows 版本,IIS日志路径不一样,所以分别如下:
Windows Server 2003 IIS日志路径:C:\Windows\System32\LogFiles
Windows Server 2008 R2 IIS日志路径:C:\inetpub\logs\LogFiles
IIS日志分析工具
这么直接看日志的效率还是非常低,所以还是需要相关的工具辅助一下,工具还是比较多,下面介绍两个比较好用的
Log Parser
微软官方出品,老牌日志分析工具,虽是老牌工具,但是目前只有英文版和日文版,附上下载地址:log parser下载
用法还是比较尴尬的,首先需要将日志文件拷贝至log parser目录下,然后运行该程序,居然打开了一个命令行界面…
用法格式:
LogParser.exe -i:日志原输入格式 -o:输出格式 "选择相应想查看的字段"
默认显示10行,可以选择All rows查看全部,选择Auto Resize自动调节显示宽度
关于Log Parser详细的使用说明附上一篇文章,此处不详细展开了:IIS分析工具详解
网站日志分析器
国产的工具还是比较好用的,介绍一款秋式网站分析器
可以选择分析单个日志和日志文件夹,在查看明细处可以看见日志中访问网站IP的次数
双击该IP可以查看具体的访问内容
IIS日志分析Web攻击行为
IIS日志有一个重要作用就是分析Web攻击行为,
sql注入攻击
下面使用IIS日志分析sqlmap对网站进行sql注入攻击。
首先使用sqlmap随便攻击一处网址url
此时查看日志文件,可以看见大量的访问记录,同时记录了访问的IP、攻击payload、sqlmap的user-agent等等
xss攻击
下面使用IIS日志分析burp suite对网站进行xss跨站攻击。
首先使用burp suite随意拦截一处网址url,并在id字段标记,使用xss-fuzzing攻击
可以看见其中一个payload攻击成功
此时查看日志文件,同样可以看见大量的xss攻击记录
post方式访问
上述的sql注入攻击和xss攻击由于使用GET方式访问页面,因此所有的payload都被完整记录下了,如果使用POST方式访问页面,并传递一些信息,IIS日志中能否记录呢?
我们将GET改为POST并添加hello qingteng
此时查看日志可以看见确实记录了这次访问,但是没有找到其中的hello qingteng
因此使用IIS日志可以记录GET攻击的详细路径,但是无法记录POST方式攻击的详细内容。
IIS篇主要介绍了IIS6的相关知识点,其实单就微软阵营而言:目前IIS7占有率更高,而最新的IIS10也有崭露头角的趋势。web服务器市场占有率可以参考netcraft每月更新的web服务器市场占有率报告,这里附上一篇作为结尾:2017年7月web服务器市场占有率报告