Web安全渗透测试之信息搜集篇(下)

发表于:2009-10-27 15:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:宇文    来源:51Testing软件测试网采编

  当我们进行安全渗透测试的时候,首先要做的就是尽可能多地收集目标应用程序信息,所以,信息搜集是渗透测试一个必不可少的步骤。这项任务可以通过多种不同的方式来完成,

  通过使用搜索引擎、扫描器、发送简单的HTTP请求或者专门精心制作的请求,都有可能导致应用程序泄漏诸如错误信息、版本信息以及所使用的技术等信息。本文将为读者详细介绍如何测试目标地址上运行了哪些应用程序,以及如何通过错误信息提前有用消息的具体方法。

  一、识别应用程序

  测试Web应用程序漏洞时,最重要的一步就是要弄清楚Web服务器上托管了哪些应用程序。许多应用程序都有已知的漏洞和攻击方法,籍此可以获得远距控制权或获得机密数据。 此外,许多应用程序经常出现配置错误,或者长期不更新,因为有些人总觉得它们是在“内部”使用的,所以就掉以轻心了。

  过去,Web服务器和IP地址的关系通常是一比一的,但是随着虚拟Web服务器的快速增长,许多网站/应用程序都共享同一个IP地址。

  作为安全专业人员,有时候为测试一个目标服务器需要处理一组IP地址。问题是,若给定的IP地址实在80端口托管了一个HTTP服务的话,那么当您通过规定IP地址来访问该服务时,它会报告该地址没有配置Web服务器之类的消息。实际上,系统可能“隐藏”了许多Web应用程序,只是它们被赋予了一些无关的符号名称而已。显然,分析的广度受被测应用程序的影响较大,您可能没有注意到它们,或者只注意到了其中的一部分。有时候,需要测试的目标对象很多,如一列IP地址和它们对应的符号名称。虽然如此,这个列表可能仅仅传递了部分信息,即它可能遗漏了一些符号名称——因为即使客户也不知道它们,尤其是对于那些大型组织。

  影响审计范围的其他问题是非显式、没有从任何地方引用它们的URL(例如http://www.example.com/some-strange-URL)公布的Web应用程序。这可能是由于错误配置所致,也可能是故意所为,比如,非公开的管理接口。为了解决这个问题,需要进行web应用程序探测。

  下面介绍黑盒子测试及实例。Web应用程序探测是一个寻找给定基础设施上的Web应用程序的过程。这些基础设施通常是用一组IP地址来规定的,或者也可以使用一组DNS符号名称给出,或者两者兼而有之。无论是典型的渗透测试或者以应用程序为中心的评估测试,这些信息都需要在实际进行审计之前给出。除非聘用合同另文专述(例如 “仅仅针对地址为http://www.example.com/上的应用程序进行测试”),否则审计应当尽量展开,,那就是说它应该找出通过给定目标可访问的所有的应用程序。在下面的例子中,我们将研究一些可以实现上述目标的技术。

  注意:后面介绍的一些技术适用于面向Internet的Web服务器、DNS和基于Web的反向IP解析服务和搜索引擎。在示例中,我们使用私人IP地址(诸如192.168.1.100)表示通用IP地址。

  有三个因素影响到与一个给定DNS名称(或者一个IP地址)有关的应用程序的数量:

  1. 不同的基URL

  对于一个Web应用程序来说,一个显而易见的入口点就是http://www.example.com/,但是并不是强制要求Web应用程序必须从“/”开始,比如,相同的符号名称可以赋给三个不同的Web应用程序:http://www.example.com/url1、http://www.example.com/url2和http://www.example.com/url3。在这个例子中,http://www.example.com/这个URL没有联系到一个具体的应用程序;此外,除非我们明确了解如何找到它们,即我们知道url1、url2、url3,否则这三个应用程序就是“隐身的”。但是,通常情况下我们无需通过这种隐身方式公布Web应用程序,除非您不想以标准方式供人们访问,而是秘密通知您的用户这些应用程序的具体位置。尽管如此,这并不意味着这些应用程序就是隐蔽的的,只不过没有公布它们的位置而已,实际上它们仍然在那里。

  2. 非标准的端口

  虽然Web应用程序通常位于80端口(http)和443(https),但是Web应用程序可以绑定到任意TCP端口,并通过指定端口号来引用它们,如http[s]://www.example.com:port/。比如,For example, http://www.example.com:20000/。

  3. 虚拟主机

  DNS允许我们把单个IP地址映射到一个或多个符号名称上,比如,IP地址192.168.1.100可以映射到下列DNS名称:names www.example.com、helpdesk.example.com和 webmail.example.com。虚拟主机通常采用这种一对多的方式提供不同的内容。规定我们正在引用的虚拟主机的信息将被嵌入到HTTP 1.1的Host:头部中。

  除非我们知道了helpdesk.example.com和webmail.example.com,否则我们不会怀疑还有其他Web应用程序。

51/512345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号