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

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介:

                                                                                        作者:玄魂

 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地址。

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

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

2.2获取目标web服务器信息

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

  1. Banner抓取。

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

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

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

     

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

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

  2. http指纹。

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

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

    不常见的http请求方法

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

    错误信息

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

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

    httprint工具

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

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

    2.3 中间件架构分析

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

检测负载均衡器

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

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

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

    上面通过域名解析我们看到校内网的图片服务器的负载平衡的主机的多个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,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
1月前
|
数据采集 监控 API
移动端性能监控探索:iOS RUM SDK 技术架构与实践
阿里云 RUM SDK 作为一款性能体验监控采集工具,可以作为辅助 App 运维的强有力助手,提升您的问题排查效率。
205 14
|
1月前
|
存储 运维 分布式计算
零售数据湖的进化之路:滔搏从Lambda架构到阿里云Flink+Paimon统一架构的实战实践
在数字化浪潮席卷全球的今天,传统零售企业面临着前所未有的技术挑战和转型压力。本文整理自 Flink Forward Asia 2025 城市巡回上海站,滔搏技术负责人分享了滔搏从传统 Lambda 架构向阿里云实时计算 Flink 版+Paimon 统一架构转型的完整实战历程。这不仅是一次技术架构的重大升级,更是中国零售企业拥抱实时数据湖仓一体化的典型案例。
157 0
|
2月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
2月前
|
数据采集 存储 运维
MyEMS:技术架构深度剖析与用户实践支持体系
MyEMS 是一款开源能源管理系统,采用分层架构设计,涵盖数据采集、传输、处理与应用全流程,支持多协议设备接入与多样化能源场景。系统具备高扩展性与易用性,结合完善的文档、社区、培训与定制服务,助力不同技术背景用户高效实现能源数字化管理,降低使用门槛与运维成本,广泛适用于工业、商业及公共机构等场景。
132 0
|
1月前
|
存储 SQL 消息中间件
从 ClickHouse 到 StarRocks 存算分离: 携程 UBT 架构升级实践
查询性能实现从秒级到毫秒级的跨越式提升
|
1月前
|
缓存 负载均衡 网络协议
HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
面向企业网络与数据团队的代理协议选型与治理指南,基于流量特征选择HTTP或SOCKS5协议,通过多协议网关统一出站,结合托管网络降低复杂度,实现稳定吞吐、可预测时延与合规落地。
|
2月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
2月前
|
前端开发 Java 开发者
MVC 架构模式技术详解与实践
本文档旨在全面解析软件工程中经典且至关重要的 MVC(Model-View-Controller) 架构模式。内容将深入探讨 MVC 的核心思想、三大组件的职责与交互关系、其优势与劣势,并重点分析其在现代 Web 开发中的具体实现,特别是以 Spring MVC 框架为例,详解其请求处理流程、核心组件及基本开发实践。通过本文档,读者将能够深刻理解 MVC 的设计哲学,并掌握基于该模式进行 Web 应用开发的能力。
468 1
|
3月前
|
存储 自然语言处理 前端开发
百亿级知识库解决方案:从零带你构建高并发RAG架构(附实践代码)
本文详解构建高效RAG系统的关键技术,涵盖基础架构、高级查询转换、智能路由、索引优化、噪声控制与端到端评估,助你打造稳定、精准的检索增强生成系统。
733 2
|
边缘计算 Kubernetes 物联网
Kubernetes 赋能边缘计算:架构解析、挑战突破与实践方案
在物联网和工业互联网快速发展的背景下,边缘计算凭借就近处理数据的优势,成为解决云计算延迟高、带宽成本高的关键技术。而 Kubernetes 凭借统一管理、容器化适配和强大生态扩展性,正逐步成为边缘计算的核心编排平台。本文系统解析 Kubernetes 适配边缘环境的架构分层、核心挑战与新兴解决方案,为企业落地边缘项目提供实践参考。
282 0