web安全实践(3)再谈基于http的服务器架构剖析

本文涉及的产品
云防火墙,500元 1000GB
简介:

作者:玄魂 

前置知识:http协议,代理服务器,web防火墙

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

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

前言

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

另外我需要更多的像我一样的人来参与这项工作。

废话还是少说的好,我们进入今天的正题。

 

正文

昨天由于太累了,没把剩下的内容写完,今天继续。主要内容是代理和防火墙的探测。

3.1检测代理

如果代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。我们的主要目的是检测目标服务器是否通过代理服务器来响应请求,以免我们丢失目标。

(1)Trace请求。当我们像web服务器发送一个Trace请求之后,服务器会回显接收到的请求。如果正常情况下,返回的请求应该就是我们发送的请求。但是如果我们的请求是先到达一个代理服务器然后真正的web服务器接收到的就应该是代理服务器的请求,也是就是返回的信息也应该是代理服务器的请求信息而不是我们最初发送的请求。说着有点迷糊,下面看一个实际的例子。不过由于一些服务器在处理trace请求存在跨站漏洞,很多网站是不支持trace请求的。

HTTP/1.1 405 Method Not Allowed

Date: Sun, 26 Oct 2008 09:03:50 GMT

Server: Microsoft-IIS/6.0

X-Powered-By: ASP.NET

X-AspNet-Version: 2.0.50727

Cache-Control: private

Content-Type: text/html; charset=utf-8

Content-Length: 3432

.....

<title>Path 'trace' is forbidden.</title>

 

而我在测试过程中也发现有的网站虽然支持Trace请求但没返回请求信息,可能是忽略或容错的设置。

下面我们看到的是一个正常的响应。

TRACE / HTTP/1.0

Host:www.xuanhun.com

HTTP/1.1 200 OK

Date: Sat, 20 Oct 2007 20:39:36 GMT

Server:Apache/2.2.6(Debian)

PHP/4.4.4-9 mod_ruby/1.2.6 Ruby/1.8.6(2007-06-07)

Connection: close

Content-Type: message/http

TRACE / HTTP/1.0

Host: www.xuanhun.com

 

如果我们访问的是代理的话,一般会出现以下两种情况:

代理服务器添加了固定的头

如"via:"X-Forwarded-For:","proxy-Connection:"

或者改变host头

TRACE / HTTP/1.0

Host:www.xuanhun.com

HTTP/1.1 200 OK

Date: Sat, 20 Oct 2007 20:39:36 GMT

Server:Apache/2.2.6(Debian)

PHP/4.4.4-9 mod_ruby/1.2.6 Ruby/1.8.6(2007-06-07)

Connection: close

Content-Type: message/http

TRACE / HTTP/1.0

Host: www.xuanhun1.com

(2)Connect标准测试.

一般情况下HTTP代理服务都会支持HTTP CONNECT的方法,利用他能建立一个TCP连接来绕过一般的应用层功能。一般,HTTP CONNECT方法都用来通过HTTP代理来建立HTTPS连接。

利用Connect测试的方法就是向一个已知站点发送Connect,观察响应信息来确定是否来自代理。

3.2检测防火墙

(1)连续的具有入侵特征的连接。

如果有防火墙它会拒绝你的连接。对于服务器的入侵扫描一般都会遭到防火墙的拒绝。其实我们现在可以肯定的是几乎所有的正规网站都会有防火墙的。我们面临的难题应该是对方使用的是什么类型的防火墙而不是用没用防火墙的问题。

(2)防火墙类型的诊断。

其实这和http指纹研究一样也应该是个统计学的问题。判断的思想应该是向服务器发送各种类型的非法请求,并判断出是否是防火墙作出的回应,回应的特征是什么。总结过程该是各个有机会接触防火墙配置的人。这项工作的研究目前还不是十分完善。我的条件也不允许我做这这个实验,我还是希望得到更多的人关于这方面的反馈。

 

观察的方面:

响应信息

Teros Web 应用防火墙技术会对trace请求作出500响应,提示:Invalid method code。F5TrafficShield 会返回400错误,并提示:The Server could not anderstand your request。Your error ID is:

Netcontinuum对任何非法请求都返回404错误。

SecureIIs会返回406错误。

特殊的cookie

Teros 对每次响应都要使用同一个名——st8id。

TrafficShield 会使用cookie名为ASINFO。

特殊的错误情况

URLScan 如果接收一个Path长度大于260个字符的请求,就返回404错误,而且如果在请求中添加如ranslate,if,Lock-Token,Transfer-Encoding等头部,就会拒绝请求。

SecureIIs 默认头部最大长度为1024个字符。

 

3.3web服务器写权限刺探

试一个目录对于web用户是否具有写权限,采用如下方法:telnet到服务器的web端口(80)并发送一个如下请求: 
PUT /dir/
1.txt HTTP/1.1 
Host: 

Content-Length: 10 
这时服务器会返回一个100( 继续)的信息:
 
HTTP/1.1 100 Continue 
Server: Microsoft-IIS/5.0 
Date:
 Thu, 28 Feb 2002 15:56:00 GMT 
接着,我们输入10个字母:
 
AAAAAAAAAA 
送出这个请求后,看服务器的返回信息,如果是一个 201 Created响应:
 
HTTP/1.1 201 Created 
Server: Microsoft-IIS/5.0 
Date: Thu, 28 Feb 2002 15:56:08 GMT 
Location:http://iis-server/dir/my_file.txt 
Content-Length: 0 
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND, 
P
ROPPATCH, SEARCH, LOCK, UNLOCK 
那么就说明这个目录的写权限是开着的,反之,如果返回的是一个403错误,那么写权限就是没有开起来,如果需要你认证,并且返回一个 401(权限禁止) 的响应的话,说明是开了写权限,但是匿名用户不允许。如果一个目录同时开了"写"和"脚本和可执行程序"的话,那么web用户就可以上传一个程序并且执行它

 

 

今天做了一天的实验,发现这部分知识总体上技术都不成熟,有待发展。其实这是矛盾的,技术成熟了对现有网站的威胁也就大了。但从技术的角度讲我希望得到相关专家的帮助。

明天的内容按计划应该是简单的http编程实践。

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

相关文章
|
27天前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
61 1
|
7天前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
5天前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
43 15
|
7天前
|
缓存 负载均衡 监控
HTTP代理服务器在网络安全中的重要性
随着科技和互联网的发展,HTTP代理IP中的代理服务器在企业业务中扮演重要角色。其主要作用包括:保护用户信息、访问控制、缓存内容、负载均衡、日志记录和协议转换,从而在网络管理、性能优化和安全性方面发挥关键作用。
27 2
|
14天前
|
负载均衡 监控 安全
HTTP代理IP的安全与稳定技术与策略的结合
随着科技与互联网的发展,企业对代理的需求日益增长。为加强HTTP代理IP的安全性和稳定性,可采取用户教育、使用加密协议、定期更换IP、监控可用性、设置访问控制、负载均衡、配置防火墙及定期更新维护等措施。这些方法能有效提升代理服务的安全性和可靠性。
20 7
|
26天前
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
|
22天前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
26天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
55 8
|
22天前
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
47 3
|
25天前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
83 5