4.1 枚举内容与功能
4.1.1 Web抓取
1、利用爬虫可获取页面,即深度搜索技术。
4.1.2 用户指定的抓取
1、用户使用它通过标准浏览器以常规方式浏览应用程序,试图枚举应用程序的所有功能。
4.1.3 发现隐藏的内容
1、应用程序常常包含没有直接链接或无法通过课件内容访问的内容和功能,
2、蛮力技巧:利用自动技巧,尝试猜测隐藏功能的名称或标识符。
3、通过公布的内容进行推测:许多应用程序对内容与功能使用某种命名方案。通过应用程序中已经存在的资源进行推断,可以调整自动枚举操作,提高发现其他隐藏内容的可能性。
4、利用公共信息:应用程序一些内容与功能可能并没有与主要内容建立连接,但过去曾经连接过,历史记录可能保存隐藏内容的引用。利用两类主要的公共资源查找隐藏内容:
①搜索引擎
②Web档案
5、利用Web服务器:Web服务器层面存在的漏洞有助于攻击者发现Web应用程序中并未建立连接的内容与功能。如:可枚举目录内容,获取服务器可执行的动态页面的原始内容。
4.1.4 应用程序页面与功能路径
1、通常是一个URL对应一个请求,获取相应数据,同时URL后面的参数是为动态获取数据或者是更精确获取数据页面。
4.1.5 发现隐藏的参数
1、如果应用程序使用其他参数以别的方式控制其逻辑,那么它使用请求参数说明应执行何种功能的情况就会出现变化。
4.2 分析应用程序
4.2.1 确定用户输入入口点
1、在检查枚举一场游戏功能时生成的HTTP请求过程中,可以确定应用程序获取用户输入的大部分内容。
2、URL文件路径:使用REST风格的URL应用程序中,查询字符串之前的URL部分可以作为数据参数,并且和进入点一样重要,因为用户输入就是字符串本身。
3、请求参数:有些应用程序不对参数使用name=value格式,而是定制方案,定制方案采用非标准查询字符串标记和字段分隔符。
4、HTTP消息头:一些日志会记录HTTP消息头(如Referer和User-Agent)的内容,应始终像这些消息头视为基于输入的攻击的可能进入点。有时攻击者还可以通过添加应用程序可能会处理的其他消息头来实施成功的攻击。
5、带外通道:应用程序通过它接收攻击者能够控制的数据。通过带外通道接收用户可控制的数据的Web应用程序包括:
4.2.2 确定服务器端技术
1、提取版本信息:许多Web服务器公开与Web服务器软件本身和所有安装组间有关的详细版本信息。
2、HTTP指纹识别:理论上,服务器返回的任何消息都可以定制或伪造,Server也不例外,大部分应用程序服务器允许管理员配置在Server HTTP消息头中返回的旗标。
3、文件扩展名:URL使用的文件扩展名能揭示应用程序执行相关功能所使用的平台或编程语言。
4、目录名称:一些目录名称常常便是应用程序使用的相关技术。
5、会话令牌:许多Web服务器与Web应用程序平台默认生成的回话令牌名称也揭示其所使用的技术信息。
6、第三方代码组件:许多Web应用程序整合第三方代码组件执行常见的功能。如:购物车、登录机制、广告牌。
4.2.3 确定服务器端功能
1、仔细分析请求:分析URL可确定部分信息。
2、推测应用程序的行为:通常应用程序以统一方式执行其全部功能,可能因为由同一位开发者编写,或者遵循设计规范相同。
3、隔离独特的应用程序行为:许多应用程序采用一致的框架防止各种类型的攻击。如跨站点脚本、SQL注入、未授权访问等。
4.2.4 解析受攻击面
1、根据常见操作,推测可能出现的漏洞。
4.2.5 解析Extreme Internet Shopping应用程序
1、EIS基本目录结构
①/auth目录:包含验证功能
②/core目录:接受由管道符(|)分隔的参数构成的数组
③/gb目录:包含该站点留言板
④/home目录:经过验证的用户内容
⑤/pub目录:REST风格的资源
⑥/shop目录:网上购物站点和大量URL
4.3 小结
4.4 问题
1、当解析一个应用程序时,会遇到以下URL:
https://wahh-app.com/CookieAuth.dll?GetLogon?curl=Z2Fdefault.aspx
据此可以推论出服务器使用何种技术?该技术的运作方式可能是怎样的?
答:文件名CookieAuth.dll说明应用程序正使用Microsoft ISA Server。这是登录功能的URL,成功登录后,应用程序将重定向到URL /default.aspx。
2、如果所针对的应用程序是一个Web论坛,并且只发现了一个URL:
http://wahh-app.com/forums/ucp.php?mode=register
如何通过它获得论坛成员列表?
答:此URL是phpBB Web论坛软件的常用“指纹”。因特网上提供了有关此软件的大量信息,读者可以自己安装该软件以进行体验。可以通过以下URL获取成员列表:
http://wahh-app.com/forums/memberlist.php
通过类似于下面的URL可以获取单个用户的用户资料:
http://wahh-app.com/forums/profile.php?mode=viewprofile&u=2
phpBB软件中包含各种漏洞,因此,读者应确认所使用的版本并研究任何相关问题。
3、当解析一个应用程序时,遇到以下URL:
https://wahh-app.com/public/profile/Address.asp?action=view&location=default
据此推断服务器端应使用何种技术。可能还存在哪些其他内容和功能?
答:.asp文件扩展名说明应用程序正使用Microsoft的Active Server Pages(ASP)。/public路径说明可能存在其他有用的路径,如/private。action=view参数表明可能存在其他操作,如edit、add或delete。应调查location=default参数的用途,其中可能包含用户名,因此应在应用程序中探查路径遍历漏洞。
4、Web服务器的一个响应包含以下消息头:
Server:Apache-Coyote/1.1
这表示服务器使用何种技术?
答:如果该消息头是准确的,说明服务器正运行Apache Tomcat。Tomcat是一种Java Servlet容器,因此应用程序可能使用的是Java和JSP技术。
5、假设正在解析两个不同的Web应用程序,在每个应用程序中请求URL /admin.cpf。每个请求返回的响应消息头如下所示。仅由这些消息头能否确定每个应用程序中存在被请求的资源?
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Expires: Mon, 20 Jun 2011 14:59:21 GMT
Content-Location: http://wahh-
app.com/includes/error.htm?404;http://wahh-app.com/admin.cpf
Date: Mon, 20 Jun 2011 14:59:21 GMT
Content-Type: text/html
Accept-Ranges: bytes
Content-Length: 2117
HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
WWW-Authenticate: Basic realm=”Wahh Administration Site”
Content-Type: text/html;charset=utf-8
Content-Length: 954
Date: Mon, 20 Jun 2011 15:07:27 GMT
Connection: close
答:第一个响应使用HTTP状态码200,通常这表示请求已成功提交。但是,Content-Location消息头表示从中获取该响应的位置。这似乎是一个动态生成的错误页面,并且其查询字符串中包含值404,表明响应中包含定制的“文件未发现”消息。
第二个响应使用HTTP状态码401,表明被请求的资源存在,但用户必须提供HTTP验证证书才能访问该资源。
对于以上每一种情况,可以使用相同扩展名(如/iuwehuiwefuwedw.cpf)请求同一目录中的某个确定不存在的项目,并比较相关响应,以证实上述结论。第一个应用程序可能会返回与原始响应极其类似的响应。第二个应用程序可能会返回包含“文件未发现”消息的不同响应。