剖析是用于研究和精确描述网站结构和应用工作方式的策略,是一个非常重要却常被忽视 的Web 入侵方向。最有效的攻击是基于缜密的准备工作,尽可能地说明应用的内部工作原理,
包括网站的所有网页、应用和输入/ 输出控制结构。
剖析过程的勤奋和严格以及投入的时间常常与整个网站上识别出的安全性问题的质量直接 相关,并且常常能区分出发现“随手可摘的果实”的“脚本小孩(script kiddle)”评估(如简 单的SQL 注入或者缓冲区溢出攻击)和真正揭露应用核心业务逻辑的渗透之间的差别。
Web 剖析中使用许多工具和技术,但是在阅读本章之后,你将能走上专家之路。我们对剖 析的讨论分为两部分:
● 基础架构剖析
● 应用剖析
我们选择这种组织结构是因为每种类型的剖析的想法、方法和结果都有所不同。基础架构 剖析关注Web 应用相对不变的“现有”组件(我们宽泛地使用“现有”这个词来包含所有形式 的通用重用软件,包括免费软件、开源软件和商业软件)。通常,这些组件中的漏洞容易识别 并且加以利用。另一方面,应用剖析处理单独的高度定制Web 应用的独特结构、逻辑和功能。
应用漏洞可能很微妙,需要花费大量的研究才能发现和利用。当然,我们对应用剖析的讨论也 将占本章的很大部分。
本章最后将简短讨论对常见剖析策略的一般对策。
2.1 基础架构剖析
Web 应用需要大量基础架构的支持—Web 服务器硬件 / 软件、DNS 项目、网络设备、
负载平衡器等。因此,任何好的安全评估方法的第一步是识别和分析应用所依赖的低级基础 架构。
2.1.1 足迹法和扫描:定义范围
最早的《黑客大曝光》图书介绍了足迹法(Footprinting)的概念—使用各种基于互联网 的研究方法确定目标应用或组织的范围。传统上有许多工具和技术用于这项任务,包括:
他带来一些收入。通过研究,Bob知道大部分防病毒软件能够发现预编译的bot程序,因此他决 定获取一份源代码来编译自己的bot。Bob专门订购了一个通过HTTP上的SSL与他租赁的主机通 信的bot程序,从而减少了bot出站通信被安全软件拦截的几率。因为Bot使用HTTP上的SSL,
bot的所有通信流量将被加密并且能够通过大部分内容过滤技术。Bob在各种搜索引擎上注册了 广告经营者(Ad Syndicator),作为广告经营者,他将在自己的网站上显示来自搜索引擎的广 告轮换程序(如AdSense)的广告,对于他在网站上的每次广告单击,他可以得到一点小小的 收入(几分钱)。
Bob使用一些与bot一同订购的利用程序(exploits),加上一些订购的应用程序级漏洞来入 侵全世界的Web服务器。使用标准的Web开发工具,他修改了网站上的HTML或者PHP页面,
载入他的广告经营用户名和密码,这样他的广告就代替了网站自己的广告。实际上,Bob强迫 他所破解的网站加入广告经营,这样当用户单击这些广告时,就将把钱送给他,而不是实际的 网站经营者。这种通过用户单击网站广告赚钱的方法被称为按单击付费广告(pay-per-click,
PPC),是Google所有收入的来源。
接下来,Bob使用armadillo packer软件打包恶意软件,使它看上去像来自于公司CEO的一 个新PowerPoint幻灯片文件。他编写一封具体的定制电子邮件,让主管们相信附件是合法的并 且来自于CEO。 服务器发送命令和带有具体数据的控制消息来进行交互。由于Bob的bot程序通过HTTP进行通 信,所以不用担心所感染的机器上运行的防火墙阻挡bot访问他所租赁的Web服务器,因为大 部分防火墙都允许端口443上的出站通信。而且,他也不用担心Web内容过滤,因为传输的数 据看上去是无害的。另外,当他打算窃取查看受害者公司集团的PowerPoint幻灯片的财务数据 时,只需要将数据加密,这样Web过滤程序就无法看到这些数据。他没有使用大量繁殖的蠕虫 来发布他的bot,因此受害者的防病毒软件没有发现这个bot的安装,因为防病毒软件没有这个 bot的特征码。
这个bot程序一旦安装,就作为一个浏览器助手对象(Browser Helper Object,BHO)代替 Internet Explorer,这使bot程序能访问该公司的所有常规HTTP通信和Internet Explorer的所有功 能,例如HTML解析、窗口标题以及访问网页的密码字段。这是Bob的bot程序嗅探发送到公司 他带来一些收入。通过研究,Bob知道大部分防病毒软件能够发现预编译的bot程序,因此他决 定获取一份源代码来编译自己的bot。Bob专门订购了一个通过HTTP上的SSL与他租赁的主机通 信的bot程序,从而减少了bot出站通信被安全软件拦截的几率。因为Bot使用HTTP上的SSL,
bot的所有通信流量将被加密并且能够通过大部分内容过滤技术。Bob在各种搜索引擎上注册了 广告经营者(Ad Syndicator),作为广告经营者,他将在自己的网站上显示来自搜索引擎的广 告轮换程序(如AdSense)的广告,对于他在网站上的每次广告单击,他可以得到一点小小的 收入(几分钱)。
Bob使用一些与bot一同订购的利用程序(exploits),加上一些订购的应用程序级漏洞来入 侵全世界的Web服务器。使用标准的Web开发工具,他修改了网站上的HTML或者PHP页面,
载入他的广告经营用户名和密码,这样他的广告就代替了网站自己的广告。实际上,Bob强迫 他所破解的网站加入广告经营,这样当用户单击这些广告时,就将把钱送给他,而不是实际的 网站经营者。这种通过用户单击网站广告赚钱的方法被称为按单击付费广告(pay-per-click,
PPC),是Google所有收入的来源。
接下来,Bob使用armadillo packer软件打包恶意软件,使它看上去像来自于公司CEO的一 个新PowerPoint幻灯片文件。他编写一封具体的定制电子邮件,让主管们相信附件是合法的并 且来自于CEO。 服务器发送命令和带有具体数据的控制消息来进行交互。由于Bob的bot程序通过HTTP进行通 信,所以不用担心所感染的机器上运行的防火墙阻挡bot访问他所租赁的Web服务器,因为大 部分防火墙都允许端口443上的出站通信。而且,他也不用担心Web内容过滤,因为传输的数 据看上去是无害的。另外,当他打算窃取查看受害者公司集团的PowerPoint幻灯片的财务数据 时,只需要将数据加密,这样Web过滤程序就无法看到这些数据。他没有使用大量繁殖的蠕虫 来发布他的bot,因此受害者的防病毒软件没有发现这个bot的安装,因为防病毒软件没有这个 bot的特征码。
这个bot程序一旦安装,就作为一个浏览器助手对象(Browser Helper Object,BHO)代替 Internet Explorer,这使bot程序能访问该公司的所有常规HTTP通信和Internet Explorer的所有功 能,例如HTML解析、窗口标题以及访问网页的密码字段。这是Bob的bot程序嗅探发送到公司
● 互联网注册研究
底层基础架构剖析的下一步通常称为标志获取(Banner grabbing)。标志获取对于黑客很 关键,因为它能够识别运行中的Web 服务器软件的类型和型号(版本)。HTTP 1.1 规范(RFC
D:\>nc -nvv 192.168.234.34 80
(UNKNOWN) [192.168.234.34] 80 (?) open HEAD / HTTP/1.0
[Two carriage returns]
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Fri, 04 Jan 2002 23:55:58 GMT [etc.]
注意读取服务器标志的HEAD 方法的使用,这是获取标志的最简单方法。
在第1 章中,我们已经遇到了几种常用来操纵 HTTP 的易用工具。在这里我们使用 netcat 来更清楚地说明原始的“输入- 输出”。
他带来一些收入。通过研究,Bob知道大部分防病毒软件能够发现预编译的bot程序,因此他决 定获取一份源代码来编译自己的bot。Bob专门订购了一个通过HTTP上的SSL与他租赁的主机通 信的bot程序,从而减少了bot出站通信被安全软件拦截的几率。因为Bot使用HTTP上的SSL,
bot的所有通信流量将被加密并且能够通过大部分内容过滤技术。Bob在各种搜索引擎上注册了 广告经营者(Ad Syndicator),作为广告经营者,他将在自己的网站上显示来自搜索引擎的广 告轮换程序(如AdSense)的广告,对于他在网站上的每次广告单击,他可以得到一点小小的 收入(几分钱)。
Bob使用一些与bot一同订购的利用程序(exploits),加上一些订购的应用程序级漏洞来入 侵全世界的Web服务器。使用标准的Web开发工具,他修改了网站上的HTML或者PHP页面,
载入他的广告经营用户名和密码,这样他的广告就代替了网站自己的广告。实际上,Bob强迫 他所破解的网站加入广告经营,这样当用户单击这些广告时,就将把钱送给他,而不是实际的 网站经营者。这种通过用户单击网站广告赚钱的方法被称为按单击付费广告(pay-per-click,
PPC),是Google所有收入的来源。
接下来,Bob使用armadillo packer软件打包恶意软件,使它看上去像来自于公司CEO的一 个新PowerPoint幻灯片文件。他编写一封具体的定制电子邮件,让主管们相信附件是合法的并 且来自于CEO。 服务器发送命令和带有具体数据的控制消息来进行交互。由于Bob的bot程序通过HTTP进行通 信,所以不用担心所感染的机器上运行的防火墙阻挡bot访问他所租赁的Web服务器,因为大 部分防火墙都允许端口443上的出站通信。而且,他也不用担心Web内容过滤,因为传输的数 据看上去是无害的。另外,当他打算窃取查看受害者公司集团的PowerPoint幻灯片的财务数据 时,只需要将数据加密,这样Web过滤程序就无法看到这些数据。他没有使用大量繁殖的蠕虫 来发布他的bot,因此受害者的防病毒软件没有发现这个bot的安装,因为防病毒软件没有这个
接下来,Bob使用armadillo packer软件打包恶意软件,使它看上去像来自于公司CEO的一 个新PowerPoint幻灯片文件。他编写一封具体的定制电子邮件,让主管们相信附件是合法的并 且来自于CEO。 服务器发送命令和带有具体数据的控制消息来进行交互。由于Bob的bot程序通过HTTP进行通 信,所以不用担心所感染的机器上运行的防火墙阻挡bot访问他所租赁的Web服务器,因为大 部分防火墙都允许端口443上的出站通信。而且,他也不用担心Web内容过滤,因为传输的数 据看上去是无害的。另外,当他打算窃取查看受害者公司集团的PowerPoint幻灯片的财务数据 时,只需要将数据加密,这样Web过滤程序就无法看到这些数据。他没有使用大量繁殖的蠕虫 来发布他的bot,因此受害者的防病毒软件没有发现这个bot的安装,因为防病毒软件没有这个