2.2.4 常见Web应用剖析

我们已经介绍了许多Web应用剖析技术,从手工检查到使用互联网搜索引擎(如Google),再到自动化的爬行方法。让我们将这些技术综合应用到一些常见的现有企业应用中,以阐述如何使用这些简单的方法来认识这些应用。

Oracle Application Server

大部分Oracle应用包含一个主要的子文件夹/pls/。这是应用中所有东西都要附加的。这个文件夹实际上是Oracle的PL/SQL模块,所有跟在它后面的都是调用参数。为了帮助你理解,看看这个Oracle应用的URL:

http://site.com/pls/Index/CATALOG.PROGRAM_TEXT_RPT?p_arg_names=prog_nbr&p_arg_values=39.001

在这个示例中,/pls/是PL/SQL网关;/Index/是数据库访问描述符;CATALOG.是一个包含PROGRAM_TEXT_RPT过程中的PL/SQL包,这个进程接受URL剩余部分的参数。

检测一个Oracle服务器一般非常容易,因为www.site.com/pls/目录绝对露出马脚。而且,Oracle用完整词语命名脚本和PL/SQL(如somename.someothername)的惯例是另一个能够说明问题的标志。Oracle名称全是大写字母也是常见的,如NAME.SOMENAME。许多Oracle名称还以一个过程如.show或URL结束,如:

http://www.site.com/cs/Lookup/Main.show?id=4592

当你看到这种结构类型,就很可能是一个Oracle应用。

BroadVision

下面是一个BroadVision URL的示例。我们已经在这个例子中放进了表示某些关键特性的粗体数字。

http://www.site.com/bvsn/bvcom/ep/programView.(2)do?(3)pageTypeId=8155&programPage=/jsp/www/content/generalContentBody.jsp&programId=8287&channelId=-8246&(1)BV_SessionID=NNNN1053790113.1124917482NNNN&BV_EngineID=cccdaddehfhhlejcefecefedghhdfjl.0

1.最致命的特征是参数名称:BV_SessionID和BV_EngineID。如果你在URL中看到这些名称,就抓住了一个BroadVision应用。还有比这更简单的吗?

2.BroadVision应用通常具有.do脚本扩展名。

3.大部分BroadVision应用的参数名倾向于以xxxxId=nnnn结束。查看URL,你会注意到三个这样命名的参数((pageTypeId=8155、programId=8287、channelId=-8246)。这种命名方案的独特之处在于ID拼写作大写的I和小写的d,而且值通常包含4个或更多数字。这是在没有明显线索的情况下检测BroadVision的好办法。

下面是另一个BroadVision URL示例:

http://www.site.com/store/stores/Main.jsp?pagetype=careers&template=Careers.jsp&categoryOId=-8247&catId=-8247&subCatOId=-8320&subtemplate=Content.jsp

乍一看,就发现存在BroadVision,因为ID中的小写d和熟悉的4位以上数字。另一个有用的线索是:它们都是负数,你在许多BroadVision应用中会看到。

PeopleSoft

下面是一个PeopleSoft URL示例。我们同样在示例中放入粗体数字表示某些关键特性。

http://www.site.com/psp/hrprd/(3)EMPLOYEE/HRMS/c/ROLE_APPLICANT.ER_APPLICANT_HOME(1).GBL?(2)NAVSTACK=Clear

1.文件扩展名明显泄密:.GBL扩展名存在于大部分运行PeopleSoft网站的URL中。

2.NAVSTACK=也相当常见于大部分PeopleSoft安装中。但是要小心!许多PeopleSoft安装没有这个参数。

3.PeopleSoft中的文件夹和文件名称常常是全大写的。

另一个泄露PeopleSoft的项目是cookie。PeopleSoft通常设置下列cookie:


PORTAL-PSJSESSIONID=DMsdZJqswzuIRu4n;
PS_
TOKEN=AAAAqwECAwQAAQAAAAACvAAAAAAAAAAsAARTaGRyAgBOdwgAOAAuADEAMBR
dSiXq1mqzlHTJ9ua5ijzbhrj7eQAAAGsABVNkYXRhX3icHYlbCkBQFEWXRz4MwRzo
dvMaAPElmYDkS0k+FIMzONs9q7PatYDb84MQD53//
k5oebiYWTjFzsaqfXBFSgNdTM/EqG9yLEYUpHItW3K3KzLXfheycZSqJR97+g5L;
PS_TOKENEXPIRE=24_Aug_2005_17:25:08_GMT;
PS_LOGINLIST=http://www.site.com/hrprd;

你一般会在大部分PeopleSoft应用中看到PORTAL-PSJSESSIONID cookie。其他三个cookie要少见得多。在大部分情况下,你会发现检测PeopleSoft安装很容易,因为在URL中明显能认出PeopleSoft。但是你不要只依赖URL来定位PeopleSoft,许多时候开发人员对应用进行了大量的自定义,从而使检测实际运行的应用变得很困难。所以我们将花费一些时间讨论PeopleSoft应用的表现和外观。随着处理Web应用的经验增加,你会变得越来越容易通过应用的行为和“观感”来识别应用。让我们来经历一个根据观感对应用进行指纹识别的示例吧。

和许多应用一样,PeopleSoft的操作与众不同。大部分PeopleSoft应用在左边有一个菜单,右边则有一个大的框架。点击左边的菜单时——它们一般表示URL;你将会看到URL随着点击而变化——页面将在右边装入。右边页面的内容通常使用大量的JavaScript编写。每个链接和按钮一般启动某种JavaScript操作。这就是为什么当你在这些链接上悬停时,会经常看到大量的“javascript:”链接,执行提交命令或者打开新窗口。这是你能很快定位PeopleSoft应用的原因之一。

因为大部分Web应用服务器都是高度可定制的,不对URL或者技术规范进行研究而辨别服务器的类型是很困难的。但是你可以找到一些细微之处,帮助指出所运行的应用。例如,PeopleSoft应用是高度可定制的,所以可能很难通过URL或者查询发现等标准剖析方法分辨出一个PeopleSoft应用。但是大部分PeopleSoft应用很容易由所使用的界面组件区分出来。例如,在下面两个屏幕截图中,你能看到众所周知的PeopleSoft应用的菜单和标准登录屏幕:

下面展示的一个疑似PeopleSoft应用的屏幕截图,这个URL没有给出任何常见PeopleSoft参数结构的迹象(https://www.site.com/n/signon.html):

将这个屏幕截图的观感与上面的已知PeopleSoft菜单作比较。注意这些菜单。PeopleSoft的菜单常常非常一致,几乎和Xwindows一样。它们的所有项目之前通常由一个“-”。注意菜单字体、大小和颜色都相同。还要注意Continue按钮的颜色和形状。

你是否看到按钮的颜色和外观都相同?我们通过这个就可以检测到运行的是一个PeopleSoft应用。另一个示例是Lotus Domino,Lotus大量使用有确定观感的可折叠树形。例如,它们可能有指向侧面或者下面的箭头,用于关闭和打开树形。如果我们看到网站上有这种树形表现,就可能是使用Domino的线索。

Lotus Domino

现在你应该很好地理解了如何快速选择URL中的区域以识别运行的应用。让我们来看看如何确定是否使用Lotus Domino。

下面是一个Lotus Domino URL示例。我们仍然在示例中放入粗体数字表示关键的特性:

http://www.site.com/realtor(1).nsf/pages/MeetingsSpeakers(2)?OpenDocument

http://www.site.com/DLE/rap.nsf/files/InstructionsforRequestForm/$file/InstructionsforRequestForm.doc

http://www.site.com/global/anyzh/dand.nsf!OpenDatabase&db=/global/gad/gad02173.nsf&v=10E6&e=us&m=100A&c=7A98EB444439E608C1256D630055064E

1.常见的扩展名是.nsf。注意扩展名是.nsf但是这个文件之后看上去像文件夹的部分实际上是参数。realtor.nsf是唯一的文件,之后是这个文件的参数。

2.OpenDocument是Lotus操作;还有许多其他的操作。

Web Sphere

下面是一个WebSphere URL示例。我们仍然在示例中放入粗体数字表示关键的特性:

http://www.site.com/webapp/commerce/command/(1)ExecMacro/site/macros/proddisp.(2)d2w/(3)report?prrfnbr=3928&prmenbr=991&CATE=&grupo=

1.查找路径中的这些关键字:/ExecMacro/、/ncommerce3/和/Macro/。

2.查找扩展名.d2w。

3.WebSphere总是有/report?参数。

WebSphere通常有类似下面这种形式的cookie:


SESSION_ID=28068215,VzdMyHgX2ZC7VyJcXvpfcLmELUhRHYdM91
+BbJJYZbAt K7RxtllNpyowkUAtcTOm;