Web安全实践(2)基于http的web架构剖析

简介:

                                                                                        作者:玄魂

 web安全实践系列导航http://www.cnblogs.com/xuanhun/archive/2008/10/25/1319523.html

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

前言

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

 

 

正文

第一篇文章我简单的介绍了一下相关的工具,如果您已经熟悉了,今天我们就小试牛刀吧!

2.1确定目标

(1)ping。这是最常规的方法,我们可以对已知域名做该操作来获得ip地址。

102508_1200_Web2htt1.jpg

(2)DNS查询。可以通过互联网上提供DNS查询服务的网站查询ip地址。

(3)端口扫描。对既定ip我们可以扫描是否开通相应的知名端口来确定该服务器启动的服务。当然服务器可以用任一的端口来做web服务,我们可以对相应的端口做简单的探测,比如用netcat发送简单的get或head请求。看它的回应是否开通web服务。

102508_1200_Web2htt2.png

2.2获取目标web服务器信息

Web服务器信息采集是架构分析的主要内容,我们目前只讨论从http协议的角度来分析。

  1. Banner抓取。

    对于Banner抓取最直接的方法是我在上一节介绍的浏览器扩展工具的使用。下面我们以FireFox的扩展Live HttpHeaders为例。

    我们启动Live HttpHeaders的捕获选项。然后输入www.xiaonei.com.

    这时就可以查看我们发送的请求和得到的响应信息了。

    102508_1200_Web2htt3.png

    102508_1200_Web2htt4.png

     

    102508_1200_Web2htt5.png

    从响应信息我们可以得到该网站的服务器为 Resin版本为3.0.21。通过google我们可以了解该服务器以及该网站更多的相关信息,这一点是非常重要的,我以后会详细的介绍。

    其他能够获取http报文的工具我就不详细介绍了,只要能达到目的任何可行的方案都可以尝试。

  2. http指纹。

    http1.1规范(RFC2616)鼓励实现者为了实现安全,将Server字段做成可配置选项。如果这样的话,我们得到的http响应的信息就有可能是假的信息。

    应对于这个问题的解决方法,就是从服务器响应的内容中跳出来,进而观察服务器器对各种响应的整体行为。因为目前的服务器对于响应的细节并没有统一的规范,所以各有不同,只要从统计学的角度进行分析就可以顺利的看到服务器的本来面目。

    不常见的http请求方法

    请求越不常见,出现不同响应的可能性越大。

    错误信息

    错误信息最容易暴露服务器的本来面目。

    这两种方式都需要我们总结大量正确数据的基础上,再分析未知服务器然后把相应行为和已知行为对比做判断。希望有做这方面工作的高手能提供相关资料。

    httprint工具

    Net-Square 的Httprint工具,是一个自动化的http指纹分析工具,带有可定制web服务器指纹数据库。下面是Httprint的一个结果报告。

    102508_1200_Web2htt6.png

    如果我们想做自己的指纹分析工具,就要对各种服务器做测试,现在我还没有这个条件来做。

    2.3 中间件架构分析

有一个可能是返回信息的主机不是我们想象中的正在分析的主机,原因可能是web服务器的中间件架构配置,包括负载均衡器,虚拟服务器配置,代理,防火墙。

检测负载均衡器

如果对一个采用负载均衡的服务器进行连续的攻击,可能每一次的请求被分配到不同的主机上,如果意识不到这点,攻击将永远不会成功。理论上讲每个各个服务器应该是完全相同的,响应也该是完全相同的,但现实中的情况会有很多的差别。服务器的时间,配置,文件目录等都有可能不同,发现不同我们就有下手的机会。

  1. 在同一个ip范围内做端口扫描。首先确定主机别名的服务器ip地址,然后对周围的ip发送请求。如果得到的响应完全相同,可能是经过负载均衡的服务器。但是几天负载均衡的主机如果在同一局域网内部,这种方法是检测不到的。如果我们用这种方法得到了负载均衡的服务器ip,再对这些ip做探测以查看各主机的不同会给我们提供入侵的新思路。

    对于采用dns轮询方式的负载平衡我们很容易看到它的相关主机。

    102508_1200_Web2htt7.png

    上面通过域名解析我们看到校内网的图片服务器的负载平衡的主机的多个IP。

    而xiaonei.com则有两个ip60.28.196.237,60.28.196.247(手机校内网)。

  2. 时间戳分析。在一秒内连续发送多个请求,看返回的头部的时间戳是否相同,如果有的主机时间未同步,那么你很幸运的发现的了它的负载均衡。关于这一方法的实现我会在编程实现的环节做演示。
  3. Etag与Last-Modified。我们多次请求后观察两个值,如果不同则非常有可能存在负载均衡。
  4. 查看html源代码中的注释。相同的页面如果注释不同,很可能来自不同的主机。
  5. 查看ssl证书的差别,这种方法,我目前还没有很好的实践,希望各位能给我个好的实践方案。

哎呀,好累,今天本来想把中间件架构都写完的,看来是坚持不住了,那就留到明天吧。也需要更多的实验。最后还是更多的朋友来交流,感激不尽。


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

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
安全
网易web安全工程师进阶版课程
《Web安全工程师(进阶)》是由“ i春秋学院联合网易安全部”出品,资深讲师团队通过精炼的教学内容、丰富的实际场景及综合项目实战,帮助学员纵向提升技能,横向拓宽视野,牢靠掌握Web安全工程师核心知识,成为安全领域高精尖人才。 ## 学习地址
23 6
网易web安全工程师进阶版课程
|
1月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
164 0
|
15天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
16天前
|
SQL 安全 PHP
CTF--Web安全--SQL注入之Post-Union注入
CTF--Web安全--SQL注入之Post-Union注入
|
1月前
|
安全 测试技术 网络安全
Web安全基础入门+信息收集篇
学习信息收集,针对域名信息,解析信息,网站信息,服务器信息等;学习端口扫描,针对端口进行服务探针,理解服务及端口对应关系;学习WEB扫描,主要针对敏感文件,安全漏洞,子域名信息等;学习信息收集方法及实现安全测试,能独立理解WEB架构框架,树立渗透测试开展思路!
18 0
Web安全基础入门+信息收集篇
|
1月前
|
监控 安全 数据管理
现代化后端开发:微服务架构下的数据管理与安全挑战
随着信息技术的不断发展,现代化后端开发正日益注重微服务架构下的数据管理与安全挑战。本文将探讨微服务架构在后端开发中的应用,重点关注数据管理和安全方面的挑战,并提供相应的解决方案。
|
1月前
|
安全 数据库 开发工具
Django实战:从零到一构建安全高效的Web应用
Django实战:从零到一构建安全高效的Web应用
49 0
|
1月前
|
安全 中间件 Go
Go语言Web服务性能优化与安全实践
【2月更文挑战第21天】本文将深入探讨Go语言在Web服务性能优化与安全实践方面的应用。通过介绍性能优化策略、并发编程模型以及安全加固措施,帮助读者理解并提升Go语言Web服务的性能表现与安全防护能力。
|
5天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
18天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
23 0