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地址。
(2)DNS查询。可以通过互联网上提供DNS查询服务的网站查询ip地址。
(3)端口扫描。对既定ip我们可以扫描是否开通相应的知名端口来确定该服务器启动的服务。当然服务器可以用任一的端口来做web服务,我们可以对相应的端口做简单的探测,比如用netcat发送简单的get或head请求。看它的回应是否开通web服务。
2.2获取目标web服务器信息
Web服务器信息采集是架构分析的主要内容,我们目前只讨论从http协议的角度来分析。
- Banner抓取。
对于Banner抓取最直接的方法是我在上一节介绍的浏览器扩展工具的使用。下面我们以FireFox的扩展Live HttpHeaders为例。
我们启动Live HttpHeaders的捕获选项。然后输入www.xiaonei.com.
这时就可以查看我们发送的请求和得到的响应信息了。
从响应信息我们可以得到该网站的服务器为 Resin版本为3.0.21。通过google我们可以了解该服务器以及该网站更多的相关信息,这一点是非常重要的,我以后会详细的介绍。
其他能够获取http报文的工具我就不详细介绍了,只要能达到目的任何可行的方案都可以尝试。
- http指纹。
http1.1规范(RFC2616)鼓励实现者为了实现安全,将Server字段做成可配置选项。如果这样的话,我们得到的http响应的信息就有可能是假的信息。
应对于这个问题的解决方法,就是从服务器响应的内容中跳出来,进而观察服务器器对各种响应的整体行为。因为目前的服务器对于响应的细节并没有统一的规范,所以各有不同,只要从统计学的角度进行分析就可以顺利的看到服务器的本来面目。
不常见的http请求方法
请求越不常见,出现不同响应的可能性越大。
错误信息
错误信息最容易暴露服务器的本来面目。
这两种方式都需要我们总结大量正确数据的基础上,再分析未知服务器然后把相应行为和已知行为对比做判断。希望有做这方面工作的高手能提供相关资料。
httprint工具
Net-Square 的Httprint工具,是一个自动化的http指纹分析工具,带有可定制web服务器指纹数据库。下面是Httprint的一个结果报告。
如果我们想做自己的指纹分析工具,就要对各种服务器做测试,现在我还没有这个条件来做。
2.3 中间件架构分析
有一个可能是返回信息的主机不是我们想象中的正在分析的主机,原因可能是web服务器的中间件架构配置,包括负载均衡器,虚拟服务器配置,代理,防火墙。
检测负载均衡器
如果对一个采用负载均衡的服务器进行连续的攻击,可能每一次的请求被分配到不同的主机上,如果意识不到这点,攻击将永远不会成功。理论上讲每个各个服务器应该是完全相同的,响应也该是完全相同的,但现实中的情况会有很多的差别。服务器的时间,配置,文件目录等都有可能不同,发现不同我们就有下手的机会。
- 在同一个ip范围内做端口扫描。首先确定主机别名的服务器ip地址,然后对周围的ip发送请求。如果得到的响应完全相同,可能是经过负载均衡的服务器。但是几天负载均衡的主机如果在同一局域网内部,这种方法是检测不到的。如果我们用这种方法得到了负载均衡的服务器ip,再对这些ip做探测以查看各主机的不同会给我们提供入侵的新思路。
对于采用dns轮询方式的负载平衡我们很容易看到它的相关主机。
上面通过域名解析我们看到校内网的图片服务器的负载平衡的主机的多个IP。
而xiaonei.com则有两个ip60.28.196.237,60.28.196.247(手机校内网)。
- 时间戳分析。在一秒内连续发送多个请求,看返回的头部的时间戳是否相同,如果有的主机时间未同步,那么你很幸运的发现的了它的负载均衡。关于这一方法的实现我会在编程实现的环节做演示。
- Etag与Last-Modified。我们多次请求后观察两个值,如果不同则非常有可能存在负载均衡。
- 查看html源代码中的注释。相同的页面如果注释不同,很可能来自不同的主机。
- 查看ssl证书的差别,这种方法,我目前还没有很好的实践,希望各位能给我个好的实践方案。
哎呀,好累,今天本来想把中间件架构都写完的,看来是坚持不住了,那就留到明天吧。也需要更多的实验。最后还是更多的朋友来交流,感激不尽。
本文转自悬魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/archive/2008/10/25/1319547.html,如需转载请自行联系原作者
Web安全实践(2)基于http的web架构剖析相关推荐
- linux对web后端重要吗,基于Linux的Web服务器性能测试
摘要:Linux作为一种免费的开源操作系统,正越来越受到人们的重视.随着稳定的Linux2.4内核发布日期的临近和IntelIA-64构架的推出,Linux在服务器操作系统市场所占的份额会继续扩大,那 ...
- 基于Linux的web的中期报告,基于Linux的Web服务器设计论文中期检查.doc
附件3: 长沙师范学院 届毕业论文(设计)课题任务书 课题题目基于Linux的Web服务器设计指导教师李列文职 称副教授学生姓名叶润凯系(部)/专业信工系/计应学 号2014541930121课题主要 ...
- java web毕业答辩_基于JAVA的WEB页面设计毕业答辩.ppt
基于JAVA的WEB页面设计 网站管理模块设计 网站页面设计 网站导航设计 网站交互设计 网站学习资源设计与后台设计 研究内容 管理模块 登录模块 权限管理模块 账户管理模块 系统登录模块设计 系统权 ...
- python web开发框架 支持windows_基于Python的Web开发框架研究_曾浩
INDUSTRY 计算 机 与 信息 技术 2011 年 8 月 第 8 期 ( 总第 153 期 ) 1 前言 Python 是 一 种开 发 效 率较 高的 语言 , 因此 比较 适 合需求 快 ...
- mysql数据库 web asp.net,使用基于asp.net web的应用程序的mysql数据库
i am getting an error while creating table at run time in c# code,it says, Format of the initializat ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉还是 ...
- 移动 Web 最佳实践(干货长文,建议收藏)
作者:mucking| 来源:掘金 https://juejin.im/post/5d759f706fb9a06afa32adec 笔者在公司用 web 技术开发移动端应用已经有一年多的时间了,开始主 ...
- app开发和web开发_了解2020年现代Web App开发的概念
app开发和web开发 Millions of businesses exchange information on the internet and to interact with their t ...
- 第三方登陆实践之基于OAuth的FACEBOOK Web Login(最新版)
第三方登陆实践之基于OAuth的FACEBOOK Web Login(最新版) Facebook 登录简介 Facebook登陆实践 1.首先,登陆[Facebook开发者平台](https://de ...
- java点餐系统实验报告_JAVA课程实践报告 基于web的点餐系统毕业设计.doc
JAVA课程实践报告 基于web的点餐系统毕业设计 大连理工大学城市学院 JAVA课程实践报告 题目:基于web点餐系统 学院:计算机工程学院 班级:07软日3班 指导教师: 杨俊生 学生姓名:李杰伟 ...
最新文章
- Found option without preceding group in config file E:\mysql\mysql-5.7.23-winx64\my.ini at line 1!
- 邓力、何晓冬深度解读:多模态智能未来的研究热点
- Linux(树莓派)安装 python-opencv
- 超简单的分布式ID生成方案!美团开源框架介绍
- 2021-10-07
- HTTP,TCP, socket,RPC 与gRPC都是啥?
- HTML-图像,音频,视频和路径
- oracle8 as sysdba,Oracle 8i 密码验证
- SVN 删除文件及其恢复大全
- 论文常用实验数据收集整理
- retinex 的水下图像增强算法_Retinex图像增强算法
- VMware之虚拟交换机
- 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.1~9.3】
- 宝贝对不起,放下工作养不起你,拿起工作陪不了你…
- 老文新读 | 大数据于国内影视行业的意义及应用
- thinkpade575加固态_【评测】工作娱乐两相宜——ThinkPadE575!
- JAVA强制类型转换常见错误
- I2C详解学习 - nRF52832蓝牙芯片 TWI-I2C学习详解笔记
- 关于磁盘阵列和LVM
- LTE无线连接过程--网络接入过程
热门文章
- python3.6.5安装教程-Centos7 安装Python3.6.5步骤
- 简明python教程txt-Python:将 list 写入一个 txt 文件四种方法
- Linux中关于useradd、chmod、chown、getfacl、setfact等权限设置
- lua学习笔记之位及字节
- 网络编程学习笔记(非阻塞读和写)
- Scala --Actor通信模型概述
- 高并发简单解决方案————redis队列缓存+mysql 批量入库(ThinkPhP)
- 丰润达全面完成安防传输生态体系布局
- 40个比较重要的Android面试题
- 信息安全系统设计基础第十二周学习总结