渗透测试步骤

(1)记录其使用的标准GUI外观、参数命名或导航机制与应用程序的其他部分不同的任何功能。

(2)同时记录可能在后续添加的功能,包括调试功能、CAPTCHA控件、使用情况跟踪和第三方代码。

(3)对这些区域进行全面检查,不要假定在应用程序的其他区域实施的标准防御在这些区域也同样适用。

4.2.4 解析受攻击面

解析过程的最后一个步骤是确定应用程序暴露的各种受攻击面,以及与每个受攻击面有关的潜在漏洞。下面简要说明渗透测试员能够确定的一些主要行为和功能,以及其中最可能发现的漏洞。本书的其他内容将详细讨论渗透测试员如何在实际操作过程中探测并利用这些漏洞。

img002 客户端确认——服务器没有采用确认检查。

img002 数据库交互——SQL注入。

img002 文件上传与下载——路径遍历漏洞、保存型跨站点脚本。

img002 显示用户提交的数据——跨站点脚本。

img002 动态重定向——重定向与消息头注入攻击。

img002 社交网络功能——用户名枚举、保存型跨站点脚本。

img002 登录——用户名枚举、脆弱密码、能使用蛮力。

img002 多阶段登录——登录缺陷。

img002 会话状态——可推测出的令牌、令牌处理不安全。

img002 访问控制——水平权限和垂直权限提升。

img002 用户伪装功能——权限提升。

img002 使用明文通信——会话劫持、收集证书和其他敏感数据。

img002 站外链接——Referer消息头中查询字符串参数泄漏。

img002 外部系统接口——处理会话与/或访问控制的快捷方式。

img002 错误消息——信息泄漏。

img002 电子邮件交互——电子邮件与命令注入。

img002 本地代码组件或交互——缓冲区溢出。

img002 使用第三方应用程序组件——已知漏洞。

img002 已确定的Web服务器软件——常见配置薄弱环节、已知软件程序缺陷。

4.2.5 解析Extreme Internet Shopping应用程序

解析EIS应用程序的内容和功能后,攻击者可以通过各种路径对该应用程序实施攻击,如图4-15所示。

img103

图4-15 EIS应用程序暴露的受攻击面

/auth目录包含验证功能。为此,有必要仔细检查所有验证功能、会话处理和访问控制,包括其他内容搜索攻击。

在/core路径内,站点状态页面似乎接受由管道符(|)分隔的参数构成的数组。除传统的基于输入的攻击外,还可以对source、location和IP这些值实施蛮力攻击,以揭示有关其他用户或在pageID中指定的页面的详细信息。另外,还可以搜索有关无法访问的资源的信息,或者在 pageID中尝试使用通配符,如pageID=all或pageID=* 。最后,由于显示的pageID值中包含斜杠,这表示应用程序可能正从文件系统检索资源,因而可以对其实施路径遍历攻击。

/gb路径包含该站点的留言板。访问此页面后发现,这是一个由管理员主持的讨论论坛。虽然其中的消息由管理员进行管理,但却采用了登录避开机制login=true,这说明攻击者可以尝试批准恶意消息(以实施跨站点脚本攻击),以及阅读其他用户发送给管理员的私有消息。

/home路径似乎保存的是经过验证的用户内容。基于这一点,攻击者可以尝试实施水平权限提升攻击,以访问其他用户的个人信息,并确保在每个页面实施了访问控制。

快速检查后发现,/icons和/images路径保存的是静态内容。这说明可以尝试对属于第三方软件的图标名称实施蛮力攻击,并检查这些目录的目录索引,但不必做过多尝试。

/pub路径的/pub/media和/pub/user目录下包含的是REST风格的资源。这说明可以针对/pub/user/11中的数字值实施蛮力攻击,以查找其他应用程序用户的个人资料页面。与此功能类似的社交网络功能可以揭示用户信息、用户名和其他用户的登录状态。

/shop路径中包含网上购物站点和大量URL。但是,这些URL的结构大致相同。仅查看一或两个URL,攻击者就可以确定所有相关的受攻击面。购物过程中可能包含有趣的逻辑缺陷,攻击者可以利用这些缺陷获得未授权折扣或逃避支付。