Web安全实践(8)攻击iis6.0

简介:
                                                                作者:玄魂
 

本系列导航http://www.cnblogs.com/xuanhun/archive/2008/10/25/1319523.html

安全技术区http://space.cnblogs.com/group/group_detail.aspx?gid=100566 

前言

   web安全实践系列主要是对《黑客大曝光——web应用安全机密与解决方案(第二版)》的内容做的实践研究和部分编程实现。所以如果您能完全理解那本书可以跳过本文章。


通过前面的讨论我们已经知道了如何判断web服务器的类型信息, 这一节继续一起讨论web平台的缺陷攻击。这里说的缺陷是服务器自身的缺陷不是管理员的配置造成的缺陷。对于这种缺陷只能通过升级或者打补丁来避免。当然对于不同的服务器及存在的漏洞,我在这一节所罗列出来的都是过去时,应该都有了解决的方案。目的不是教你如何攻击web平台,而是了解什么是攻击web平台。重在介绍漏洞的原理,因为我的目的不在攻击而在技术本身。

正文

 

一. Iis6.0服务器名远程欺骗

该问题主要出现在asp或者asp.net程序想要获得应用程序所在服务器ip地址的时候。

Request.ServerVariables("SERVER_NAME")或者

Request.ServerVariables["SERVER _NAME"]

这样的调用会返回局部环境变量中SERVER _NAME的值。如果该请求来自Internet,这个值是web服务器的ip地址。如果请求来自web服务器,该变量的值是Localhost。

 

对下面这个地址

http://nic.ustl.edu.cn/

我们一般的请求是

GET / HTTP/1.1

Host: nic.ustl.edu.cn

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

得到的响应是110908_0809_Web8iis1.png

我们也可以修改成

GET / HTTP/1.1

Host: 127.0.0.1

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3。。。。。。

得到的响应是

110908_0809_Web8iis2.png

两次收到信息是不同的。是不是很有意思?也许幸运的话能得到更多隐秘的信息,这个例子只想说的是对于来自internet和服务器自己的请求,iis的处理是不同的,从这个不同当中我们能获得什么呢?过多的演示我不去做,这里只简单的提一下。

(1)正常访问没有权限获得的东西也许这时你可以获得。

(2)对于同样的错误iis会返回不同的信息,你可以获得更多的细节。

在一些代码中就经常引用该变量来探测IP是否是服务器本身,这就带来了一系列的非法利用如Cookie窃取,数据转向或者其他的URL处理中.

让我们来看另一个变量——REMOTE_ADDR。这应该是确定请求来自远程还是本地的正确方法,它会告诉客户端的ip地址。

如果一个程序是这样的:

If(REMOTE_ADDR=="17.0.0.1")

{

发送管理界面

}

else

{

发送错误信息界面

}

我们现在要注意的是iis查找REMOTE_ADDR的顺序:现在查询集查找,然后在提交的数据,然后是cookie,最后是服务器变量。既然最后是服务器变量,那我们是不是可以在它查找服务器变量之前给一个假的查询变量或者cookie呢!

例如:http://...../login.aspx? REMOTE_ADDR=127.0.0.1

 

二. Microsoft IIS服务跟踪日志绕过漏洞

 

下面这个关于此漏洞的描述是我在网上找到的,我再略微做一下解释和补充。
 

Microsoft IIS服务跟踪日志绕过漏洞

来源:51CTO 作者: 发布时间:2008-07-16

漏洞类别:

跟踪日志绕过漏洞

攻击类型:

远程攻击

发布日期:

2003-12-29

更新日期:

2004-01-04

受影响系统:

Microsoft IIS 6.0
- Microsoft Windows 2003 Web Edition 
- Microsoft Windows 2003 Standard Edition 
- Microsoft Windows 2003 Enterprise Edition 64-bit 
- Microsoft Windows 2003 Enterprise Edition 
- Microsoft Windows 2003 Datacenter Edition 64-bit 
- Microsoft Windows 2003 Datacenter Edition

安全系统:

漏洞报告人:

Parcifal Aertssen

漏洞描述:

BUGTRAQ  ID: 9313
Microsoft IIS是一款微软开发的WEB服务程序。
Microsoft IIS服务跟踪日志记录存在问题,远程攻击者可以利用这个漏洞提交恶意请求而不被记录。
问题是IIS服务器对"TRACK"请求没有进行日志记录,这可导致攻击者对服务器进行探测或生成部分通信不被发现。
IIS 6.0不受此漏洞影响。

测试方法:

警告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

TRACK / HTTP/1.0

   

解决方法:

临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 使用代理,防火墙或者IDS系统进行日志记录。
* 使用URLScan安全工具阻止TRACK请求。

目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.microsoft.com/technet/security/

(1)track隐藏请求

track是一种http方法,目前好像(其他的服务器我还不是很确定)只有iis支持,其功能和trace方法相同。请求方式如:

track / http/1.0

可是奇怪的是iis对该请求不做任何记录。这样的话很容易被利用DoS攻击。

(2)使用超长URL绕过日志记录。

很多服务器在写web日志的时候都有一个默认长度,一旦长度超过这个值,就会被省略掉。

所以如果我们想不让服务器记录攻击行为可以先用一些无意义字符填满记录,而后再跟上攻击代码。

 

.WebDAV漏洞

  IIS5.1/6.0  WebDAV存在一个拒绝服务漏洞,其中WebDAVDAV代表"分布式制作和版本控制")是 HTTP 规范的扩展,它支持授权用户在 Web 服务器上远程添加和管理内容,默认情况下,如果 Win2000上启用 IIS,则启用 WebDAV,而IIS 5.1  IIS 6.0 上则不安装 WebDAV

  利用该漏洞,黑客可以向运行 IIS  WebDAV 的服务器、发送精心制作的 WebDAV 请求进行攻击,当 IIS 处理这些消息时,会将 IIS 服务器上的 CPU 利用率和内存使用率增加到 100%XML 消息中每个 XML 元素包含的 XML 属性越多,IIS 服务处理 XML 消息所需的时间就越长,这样即造成在IIS处理消息的时候拒绝服务。

四. 文件解析路径漏洞

Win2003存在着一个文件解析路径的漏洞,当文件夹名为类似*.asp的时候(即文件夹名看起来像一个ASP文件的文件名),此时此文件夹下的文本类型的文件都可以在IIS中被当做ASP程序来执行。这样黑客即可上传扩展名为jpg或gif之类的看起来像是图片文件的木马文件,通过访问这个文件即可运行木马。具体测试办法:在FTP中建立一个 test.asp 的文件夹,文件夹名就是 test.asp ,在这个文件夹中上传一个 hack.jpg,这个jpg的内容可以直接是ASP文件,然后,用IE远程访问这个hack.jpg,你可以发现,它一样被当作是ASP文件来运行!显然,只要你的网站程序,允许用户自己建立文件夹及上传图片,我们就可以上传图片来当作ASP木马来运行。

实例: http://test.xuanhun.com/test.asp/asp.jpg
该地址路径组成方式:站点地址/test.asp/asp.jpg 其中test.asp为文件夹名,而asp.jpg却执行了asp权限如果被传了asp后门webshell,后果可想而知了。
利用这种攻击方式,致使恶意破环的人可以绕过上传文件时的扩展名检查,上传正常扩展名的木马文件,以得到WebShell权限。具有高级权限的后台管理员也可以利用此漏洞得到WebShell权限。

本文转自悬魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/archive/2008/11/09/1330100.html,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
10天前
|
Android开发
Android WindowFeature小探究,Android客户端Web页面通用性能优化实践
Android WindowFeature小探究,Android客户端Web页面通用性能优化实践
|
11天前
|
安全 JavaScript Go
【Web】什么是 XSS 攻击,如何避免?
【Web】什么是 XSS 攻击,如何避免?
|
5天前
|
弹性计算 关系型数据库 MySQL
【阿里云弹性计算】从零搭建:基于阿里云ECS的高性能Web服务部署实践
【5月更文挑战第21天】本文介绍了如何使用阿里云ECS搭建高性能Web服务。首先,注册阿里云账号购买ECS实例,选择合适配置。接着,通过SSH连接实例,更新系统并安装Apache、PHP和MySQL。创建网站目录,上传代码,配置数据库和PHP。然后,启用Gzip压缩和KeepAlive,调整Apache并发连接数以优化性能。此教程为在阿里云上构建高效Web服务提供了基础指南。
104 5
|
8天前
|
数据库连接 Python
Flask 框架入门与实践:构建你的第一个 Web 应用
【5月更文挑战第18天】本文介绍了使用 Flask 框架构建第一个 Web 应用的步骤。首先通过 `pip install Flask` 安装框架,然后编写基本的 Python 代码创建应用,包括定义路由和响应。示例展示如何显示 "Hello, World!",并扩展到显示用户信息的功能。利用模板(如 `index.html`)可使页面更丰富。随着学习深入,可以利用 Flask 的更多特性,如表单处理和数据库连接,来构建更复杂的 Web 应用。本文旨在激发读者对 Flask 和 Web 开发的兴趣,鼓励不断探索和实践。
46 7
|
9天前
|
JavaScript 前端开发 架构师
Web Components:自定义元素与Shadow DOM的实践
Web Components是用于创建可重用自定义HTML元素的技术集合,包括Custom Elements、Shadow DOM、HTML Templates和Slots。通过Custom Elements定义新元素,利用Shadow DOM封装私有样式,<slot>元素允许插入内容。自定义元素支持事件处理和属性观察,可复用且样式隔离。它们遵循Web标准,兼容各前端框架,注重性能优化,如懒加载和Shadow DOM优化。
10 0
|
9天前
|
前端开发 Java Go
从前端到后端:构建现代化Web应用的技术实践
本文将介绍如何通过前端和后端技术相结合,构建现代化Web应用的技术实践。我们将探讨前端开发、后端架构以及多种编程语言(如Java、Python、C、PHP、Go)在构建高效、可扩展的Web应用中的应用。
|
11天前
|
XML 云安全 安全
了解常见的web漏洞-XXE漏洞,日常如何做好web安全
随着网络技术的不断发展,网站安全问题日益受到人们的关注。当前随着技术发展,网站存在一些常见的可能被攻击者利用的漏洞,而在众多网站安全漏洞中,XXE(XML External Entity)漏洞是一个不容忽视的问题。今天我们就来分享了解一下关于XXE漏洞的概念、原理以及日常上有哪些可以措施可以防护网站安全。
|
11天前
|
缓存 监控 前端开发
探索现代Web应用的性能优化实践
【5月更文挑战第10天】随着互联网技术的飞速发展,用户对Web应用的响应速度和流畅度要求越来越高。性能优化已成为前端开发中不可或缺的一环。本文将深入探讨Web应用性能优化的关键策略,包括代码分割、资源压缩、缓存利用、服务端渲染等技术手段,以及如何通过工具进行性能监测和分析。我们将从原理出发,结合实际案例,帮助开发者构建更快速、更高效的Web应用。
|
11天前
|
开发框架 JSON .NET
.Net4.0 Web.config 配置实践
.Net4.0 Web.config 配置实践
|
11天前
|
存储 前端开发 安全
13:会话跟踪技术Session的深度应用与实践-Java Web
13:会话跟踪技术Session的深度应用与实践-Java Web
36 3