首页 > 新闻动态> 渗透测试服务概述
渗透测试服务概述
2023-12-11

一、渗透测试服务概述

渗透测试服务(Penetration Test)主要依据国际、业界一致认可OWASP 安全渗透性测试标准和方法为依据,配合CVE(Common Vulnerabilities & Exposures公共漏洞和暴露)已经发现的安全漏洞,在客户的授权下,模拟入侵者的攻击方法对应用系统、服务器系统和网络设备进行非破坏性质的攻击性测试,直观地暴露自身网络所面临的威胁与风险点。

渗透测试的基本步骤包括:信息收集、制定测试策略、对已知漏洞进行测试、对漏洞进行验证、挖掘目标未知漏洞、获取和提升权限、扩大渗透范围。

渗透测试


二、渗透测试服务内容

渗透测试主要针对B/S、C/S等架构的系统,是当前最流行的攻击手段。大部分黑客入侵都是由此开始,并渗透到系统和网络。检测公司公司在应用层渗透测试主要安排以下内容,具体操作根据系统实际情况进行:

1) SQL注入检测

SQL注射类型的漏洞通常是出现在客户和服务器进行信息交互的接口处,这种漏洞使得服务器的后台数据库内的信息很有可能直接暴露出来,造成机密信息的泄漏。如果其中包含管理员的帐号信息,其危害也就不言而喻了。更重要的是站在系统客户的角度来说,这种问题的出现严重影响到了系统在客户心中的信誉度。对于某些数据库,可以通过执行数据库的命令,执行系统命令。通过间接的方式获取系统权限。

2) 跨站脚本漏洞检测

跨站攻击有针对服务器方面的,也有针对访问系统的客户端。对服务器而言,跨站攻击主要存在系统的脚本代码存在问题,接受非本站数据的提交。例如攻击者可以通过自己搭建系统,但系统接受的参数提交是传输给欲攻击的目标系统,若目标系统存在跨站脚本攻击的问题,就会接受非本站传输过来的数据并且执行。针对客户端的跨站攻击有两种,一是攻击者在存在问题的页面地址上构造连接,欺骗别的客户点击,事实上该所执行的脚本是另外系统的,有可能是恶意脚本。另外一个是攻击者在目标系统上可以通过恶意提交,在目标系统上生成带有恶意代码的页面,让浏览者执行恶意脚本。这种问题在论坛上较为常见,危害也较大。特别是访问量较大的站点,浏览者可能被盗取密码,或者被种植木马。

3) 应用结构分析

通过对系统进行智能搜索扫描,从结构上剖析了整个系统的组织结构,可以更加直观的看到整个系统的实施。通过分析系统整个系统结构上的目录和文件取名习惯,以及系统结构层次的分析,能够得到管理员的建站习惯,可能导致恶意客户猜测管理员密码或其他配置错误。通过分析目录结构,可以了解系统使用的建站模板,从而通过该模板可能存在的漏洞进行安全测试。也可以从目录中寻找后台地址,进一步测试。

4) 目录遍历探测

通过遍历每个存在的目录,智能搜索并探测除公开网页中包含的所有目录以外,是否存在非授权不能访问却被访问的目录。这些目录很有可能就是系统管理员后台程序所在目录或者是数据库所在目录。如果这些目录没有做好权限设置,那么极有可能导致系统后台失陷于此。该问题是Web服务器常见的Apache设置错误,恶意客户可以读取任意可读文件。

5) 隐藏文件探测

通过隐藏文件的智能探测,除了已有的所有公开页面以外,智能搜索并探测在这些目录下是否存在隐藏文件。这些文件很有可能就是系统的一些配置文件,或者是系统管理员忘记删除的程序说明书,或者是系统后台登陆的重要文件。这些文件极有可能导致系统重要数据的泄漏,最终导致整个系统权限的沦陷。

6) 备份文件探测

通过备份文件的智能探测,除了已有的所有公开页面以外,智能搜索并探测在这些目录下是否存在备份文件。这些文件很有可能就是系统的一些重要文件的备份信息,或者是系统管理员忘记删除的系统数据库备份。这些文件是最有可能导致系统重要数据的泄漏的风险点,直接威胁着整个系统的整体安全。

7) 管理后台探测

通过对管理后台的探测,找到系统管理、参数设置和配置的入口,通过对身份鉴别的绕过或密码猜解,获取和管理员一样的身份,从而影响系统内容的安全性。甚至通过后台管理功能,上传脚本木马或者下载数据库,更改系统显示的内容,开启和关闭系统的功能。

8) 身份验证绕过检测

对前台或后台的身份鉴别页面,通过Cookies欺骗或其他绕过手段,跳过身份鉴别部分,直接获取管理员的权限。

9) 默认数据库检测

采用通用模板构建的系统,其后台数据库地址往往没有修改,采用的是默认地址。对一些常见的系统默认地址,部分管理员也采用常见的命名习惯。通过对这些数据库地址的检测,在获取地址后,对没有防止下载的ACCESS数据库可以进行下载探测。

10) 上传漏洞检测

通过对系统上传功能,后台文章、信息发布地址中上传功能的检测,检查是否进行了严格的文件类型过滤。在没有过滤严格,或存在漏洞的上传功能和页面,可以上传脚本后门从而控制系统。

11) 旁注检测

旁注攻击是SQL注入攻击的一种扩展攻击方式。当目标系统所在服务器上存在多个站点。攻击者的攻击目标站点不存在可以利用的漏洞,但别的系统存在漏洞。若系统服务器对系统之间的执行角色没有做好严格的权限划分,攻击者可以利用同服务器问题系统的漏洞间接的入侵欲攻击的目标系统。

12) HTTP协议追踪

若WEB服务支持TRACE方法,若参数配置错误,则可能产生信息泄露或跨站漏洞的问题。

13) Cookies欺骗检测

系统的代码若对身份验证部分做的不够严谨,单纯采用COOKIES方式判断的话,可能存在COOKIES欺骗的方式。通过这样的攻击,攻击者可以绕过后台登陆的身份验证直接访问管理页面进行恶意操作。

14) 弱密码猜解

系统若存在管理后台,如果系统管理员安全意识不到位,将密码设置的较简单,可能被攻击者通过猜测的方式破解。

15) Web服务程序安全检测

WEB应用程序若本身存在远程溢出的问题,则可能被利用入侵。目标系统若没设置好,会产生目录浏览的问题,暴露系统信息。该问题不可以直接入侵系统,但是可以暴露信息帮助入侵。


三、渗透测试服务流程

参见上面的渗透测试流程图,信息的收集和分析伴随着每一个渗透测试步骤,每一个步骤又有三个部分组成:操作、响应和结果分析。远程渗透测试是通过互联网发起远程攻击,外部网络渗透测试比内部网络渗透测试更能说明安全性的严重性。

1)客户委托

客户委托是公司进行渗透测试的必要条件。公司将尽最大努力做到客户对渗透测试所有细节和风险的知晓、所有过程都在客户的控制下进行。这也是公司的专业服务与黑客攻击入侵的本质不同。

渗透测试委托书(授权书)应包含以下内容:

ü 渗透测试的范围(包括IP地址及域名);

ü 渗透测试时间(包括开始时间和结束时间);

ü 渗透测试委托书(授权书)以书面形式提交并盖有甲方单位的公章;

2)信息收集

信息收集分析几乎是所有入侵攻击的前提/前奏/基础。“知己知彼,百战不殆”,信息收集分析就是完成的这个任务。通过信息收集分析,攻击者(测试者)可以相应地、有针对性地制定入侵攻击的计划,提高入侵的成功率、减小暴露或被发现的几率。

信息收集的方法包括端口扫描、操作类型判别、应用判别、账号扫描、配置判别等等。入侵攻击常用的工具包括nmap、nc等,有时,操作系统中内置的许多工具(例如telnet、Internet Explorer浏览器)也可以成为非常有效的攻击入侵武器。信息收集后的分析的基础是安全弱点的关键知识库。

3)弱点利用

通过收集信息和分析,存在两种可能性,其一是目标系统存在重大弱点:测试者可以直接控制目标系统,这时测试者可以直接调查目标系统中的弱点分布、原因,形成最终的测试报告;其二是目标系统没有远程重大弱点,但是可以获得远程普通权限,这时测试者可以通过该普通权限进一步收集目标系统信息。接下来,尽最大努力获取本地权限,收集本地资料信息,寻求本地权限升级的机会。这些不停的信息收集分析、权限升级的结果构成了整个渗透测试过程的输出。

从权限提升的目标来分析,也分为两种。其一是前面叙述的对本地主机权限进行提升。其二是利用已经获得权限的主机发起攻击获得其他服务器甚至整个网络的控制权限。

4)结果输出

当渗透测试完成后,网络安全工程师将根据渗透测试的过程文档撰写《用户方网站渗透测试报告》,详细描述渗透测试的过程和结果,并就发现的问题提出解决方案。


四、渗透测试方法

1)工具测试

a) 测试方式:

工具测试使用的工具主要包括:

安全扫描工具:自动化地扫描发掘系统的弱点以及其他信息;

漏洞利用工具:对发现的弱点进行验证和利用;

辅助工具:方便渗透测试的工作进行,帮助了解分析目标主机的信息。

工具测试的除安全扫描外,其他工作基本上都是与人工测试紧密结合来共同完成测试目标的。

b) 常用工具:

渗透测试工作中常用的扫描工具如下:

SuperScan3 (端口扫描)

Nessus安全扫描软件(系统扫描)

X-Scan-v3.3安全扫描软件(系统扫描)

Retina Network Security Scanner安全扫描软件(系统扫描)

Nikto 安全扫描软件 (CGI扫描)

Acunetix Web Vulnerability Scanner(网站应用扫描)

MatriXay(SQL注入扫描)

渗透测试工作中常用的SQL注入利用工具如下:

Domain3.5

Nbsi3.0

Pangolin

DSQLTools

渗透测试工作中常用的漏洞利用以及辅助工具如下:

WEBTOOL V4.2 (网站安全检测工具)

Metasploit

SQLInjectEncode

SQL综合利用工具

渗透测试工作中常用的在线工具如下:

http://www.ip138.com( IP地址查询)

http://www.webhosting.info( whois服务器查询)

http://www.xmd5.org  (Md5在线解密)

http://ip.wen.la/ (同IP站点查询)

渗透测试过程中使用的工具将根据网站实际情况以及最小影响的原则进行选择。

2)人工测试

a) 测试方式:

人工测试的主要工作是对扫描发现的弱点以及信息进行分析验证,找到真实存在的漏洞并进行利用或者发掘出新的弱点。人工测试是渗透测试工作最主要的部分,它完全依靠工程师的个人经验进行。因此每个工程师测试和利用的方法以及选用工具都会不同。

b) 可能的影响:

由于采用可控制的、非破坏性质的渗透测试,因此不会对被评估的系统造成严重的影响。在渗透测试结束后,系统将基本保持一致。渗透测试过程透明化,所有测试过程及记录均由被测单位相关人员进行批准和审查。由于人工对网站的测试就相当于普通状态下流量网站内容,因此人工测试对服务器以及数据库的影响基本可以忽略。


五、渗透测试内容

应用层的渗透测试主要针对B/S架构的系统,是当前最流行的攻击手段。大部分黑客入侵都是由此开始,并渗透到系统和网络。我们在应用层渗透测试主要安排以下内容,具体操作根据网站实际情况进行:

配置管理测试

通过分析基础结构和拓扑结构可以获取大量的Web应用程序的信息。如源代码,可允许的HTTP方法,管理功能,身份认证的方法和基础结构的配置。


测试项说明
SSL/TLS测试SSL和TLS是两个通过加密为传输的信息提供安全信道的协议,该安全信道具有保护,保密和身份认证的功能。考虑到这些安全工具的关键性,确保加密算法的高强度及其正确执行非常重要。

数据库侦听器(DB Listener)测试在数据库服务器配置时,许多数据库管理员没有充分考虑到数据库侦听器组件的安全。如果没有进行安全的配置而使用手动或自动的技术进行侦听,侦听器就可能泄露敏感数据以及配置信息或运行的数据库实例信息。泄露的信息对测试者来说通常是有用的,可以利用这些信息进行更深入的渗透。

基础结构配置管理测试相互联系的混杂的Web服务器结构能有数以百计的web应用程序,这种固有的复杂性使配置管理和审查成为测试和部署每一个应用程序的一个基本步骤。事实上一个漏洞就能破坏整个基础结构的安全,甚至某些微小且(几乎)不重要的问题可能对于相同服务器上的另外一个应用程序是个严重的威胁。为了解决这些问题,对配置和已知的安 全问题执行深入审查是非常重要的。

应用配置管理测试Web应用程序可能隐藏了一些通常在应用程序自身开发和配置中没有考虑到的信息。这些信息可能从源代码,日志文件或Web服务器的默认错误代码中泄露。

文件扩展名处理测试从Web服务器或Web应用程序上的文件扩展名能够识别出目标应用程序使用的技术,例如扩展名JSP与ASP。文件扩展名也可能暴露与该应用程序连接的其它系统。

过时的、用于备份的以及未被引用的文件Web服务器上多余的,可读的和可下载的文件,如过时的,用于备份的和更名的文件,是信息泄漏的一个大源头。验证这些文件的存在是有必要的,因为它们可能包含应用程序或数据库的部分源代码,安装路径以及密码。

基础结构和应用管理接口许多应用程序在管理接口使用一个公用路径,从而可能被用来猜测或暴力破解管理密码。此测试目的是找到管理接口,并了解是否可以利用它获取管理员权限。

HTTP方法和XST测试在这个测试中,我们确保 Web 服务器没有被配置成允许使用具有潜在危险性的HTTP命令(方法),同时确保跨网 站追踪攻击(XST)是不可能的。


认证测试

认证是一种建立或确认某事(或某人)是否合法的行为,也就是说,宣称或提出的事情是真的。认证某个对象可能意味着确认其出处,而验证一个人往往包括核实对方的身份。验证取决于一个或多个认证因素。在计算机安全中,认证是试图验证交流方发送人的数字身份的过程。一个常见的例子就是登录过程。测试验证架构意味着了解认证过程如何工作,如何使用那些信息绕过验证机制。


测试项说明
加密信道证书传输了解用户输入web表单中的数据,例如,为了登录到一个网站而输入的数据,是否使用了安全协议传输,以免受到攻击。

用户枚举测试这项测试的范围是为了验证是否有可能通过与应用的认证机制互动而收集一套有效的用户。这项测试将是有益于暴力测试。通过这种测试我们验证是否通过一个有效的用户名就可以找到相应的密码。

可猜解用户帐户猜测(遍历)测试测试是否有默认的用户帐户或可以猜测的用户名/密码组合(遍历测试)

暴力测试当遍历攻击失败,测试者可以尝试使用暴力方法获得验证。暴力测试是不容易完成的测试,因为需要时间并且可能锁定测试者。

认证架构绕过测试其它被动测试方法企图绕过身份的认识验证模式,因为他们认为并非所有的应用程序的资源都能得到充分的保护。测试者能够在没有认证的情况下访问这些资源。

记住密码和密码重置弱点测试在这里,我们测试应用如何管理“忘记密码”过程。我们还检查应用是否允许用户在浏览器中存储密码(“记住密码”功能)。

注销和浏览器的缓存管理测试通过检查应用的注销和缓存功能,确保相关操作得到正确实现。

CAPTCHA测试CAPTCHA(“全自动区分计算机和人类的图灵测试”)是一种许多Web的应用程序使用的挑战响应测试,以确保反应不是由计算机生成。即使产生的captcha是牢不可破的,其执行经常遭受各种攻击。

多因素身份验证测试多因素身份验证意味着测试了以下的情况:一次性密码所生成的验证码,加密设备,如USB验证码或配备了X.509证书的智能卡,通过SMS发送的随机一次性密码,只有合法用户知道的个人信息。

竞态争条件测试竞态条件是一个缺陷。当行动的时间影响了其它行动时,它会产生意想不到的结果。例如:一个多线程应用程序对同一数据进行操作时。就其性质而言,竞态条件很难测试。


会话管理测试

任何基于Web的应用程序的核心就是保持状态从而控制网站用户交互的方式。会话管理大致涵盖了从认证到离开应用程序的所有用户控制。HTTP是一种无状态协议,也就是说,Web服务器不需要关联客户端请求就能响应。但即使是简单的应用逻辑都需要关联数个客户端请求而组合成为一个“会话”。这就需要第三方的解决方案通过任何现成的(原始文本服务)中间件和Web服务器解决方案,或实施定制开发。最受欢迎的网络应用环境,如ASP和PHP,为开发人员提供了内置的会话处理例程。通常会发行称为“会话ID”或Cookie的识别标志。

Web应用程序可能与用户交互的方法有很多种。每种方法都取决于网站的性质、安全性和应用的有效性需求。


测试项说明
会话管理模式测试通过分析会话管理模式,理解测试目标的会话管理运行机制,并确定是否能打破这一机制以便绕过用户会话。测试发送给客户端浏览器的会话验证码的安全:如何对cookie实行反向工程,以及如何通过篡改cookies来劫持会话。

Cookies属性测试Cookies往往是恶意用户关键的攻击媒介(通常针对其他用户)。因此,应用程序应始终采取措施保护cookie。了解应用程序在分派cookie时如何采取必要的预防措施,以及如何测试这些已正确配置的cookie的属性。

会话固定测试当应用程序在成功验证用户后不更新Cookie时,我们就能找到会话固定漏洞并迫使用户使用攻击者已知的cookie。

会话变量泄漏测试因为会话验证码连系了用户身份和用户会话,所有它代表的是保密信息。我们可以测试会话验证码是否暴露在漏洞中,并试着追溯会话攻击。

跨站伪造请求(CSRF)测试跨站伪造请求描述了在web应用中,迫使已通过验证的未知用户执行不必要请求的方法。


授权测试

授权就是允许获得许可的用户获取资源。授权测试就是了解授权流程如何工作,并使用这些信息规避授权机制。授权是成功验证后的一个过程。测试者在得到有效证书后使用一套明确的角色和权限进行验证。该测试核实是否可以绕过授权模式、找到一个路径遍历漏洞、或设法升级分配给测试者的特权。


测试项说明
路径遍历测试测试是否能够找到一种方法来执行路径遍历攻击并获得未公开的信息

绕过授权模式测试这种测试的重点是核实如何对每一个角色/特权实施授权模式以便获得保留功能/资源。

权限提升测试在此阶段,测试者需要确认用户不可能采用允许特权提升攻击的方式修改自己在应用程序内部的特权/角色。


数据验证测试

web应用最常见的安全漏洞在于不能在使用前正确验证来自客户端或外界的数据。这一弱点几乎导致了所有Web应用程序的主要漏洞,如:跨站脚本攻击、SQL注入攻击,解释器注入攻击、locale/Unicode攻击、文件系统攻击和缓冲区溢出。该测试所有可能的输入形式,以便了解应用程序是否在使用前充分验证输入数据。


测试项说明
跨站点脚本的测试在跨站脚本攻击(XSS)的测试中,通过测试能否操纵应用程序参数输入,使之产生恶意输出。当应用程序没有验证输入数据并在我们控制下产生输出时,我们就能发现XSS漏洞。此漏洞会产生各种攻击。例如,窃取机密信息(如会话cookie)或控制受害者的浏览器。

SQL注入测试检测是否有可能将数据注入到应用程序中,以便它能在后端数据库中执行用户控制的SQL查询。如果应用程序在没有恰当验证数据的情况下使用用户输入创建SQL查询,那么说明该应用程序存在SQL注入漏洞。成功利用这一类别的漏洞会导致未授权用户访问或操作数据库中的数据。

LDAP注入测试类似于SQL注入测试。不同之处在于我们不是使用SQL而是使用LDAP协议,同时测试的目标是LDAP服务器,而不是SQL服务器。

ORM注入测试同样类似于SQL注入测试。在这种情况下,我们使用SQL注入攻击ORM产生的数据访问对象模型。从测试的角度来看,这种攻击几乎和SQL注入攻击相同。然而,代码中存在的注入漏洞是由ORM工具产生的。

XML注入测试检测是否有可能在应用程序中注入特定的XML文档。如果XML解析器没有验证任何数据,该应用程序存在XML注入漏洞。

SSI注入Web服务器通常让开发者在静态HTML网页中增加小型动态代码,而不必处理全面的服务器端或客户端语言。服务器端嵌入(SSI)注入能够体现这一特色。SSI注入测试检测是否有可能在应用程序中注入SSI机制解释的数据。黑客成功利用此漏洞后能够将代码注入到HTML网页,甚至远程执行代码。

XPath注入XPath是针对部分XML文件而设计和开发的语言。XPath注入测试检测是否有可能在应用程序中注入数据,以便执行用户控制的XPath查询。攻击者成功利用这个安全漏洞就能够绕过认证机制或未经授权获取信息。

IMAP/SMTP注入这种威胁影响到所有与邮件服务器(IMAP/SMTP)连接的应用程序,通常是Webmail应用程序。由于输入没有得到验证,IMAP/SMTP注入测试检测是否有可能在邮件服务器中注入任意的IMAP/SMTP命令。

Code注入代码注入测试检测是否有可能在应用程序中注入稍后由web服务器执行的代码。

OS命令在命令注入测试中,我们设法通过HTTP请求在应用程序中注入OS命令。

缓冲区溢出在这些测试中,我们检查不同类型的缓冲区溢出漏洞。如堆溢出、栈溢出、字符串格式化溢出。

孵育漏洞测试孵育测试是需要多个数据验证漏洞工作的复杂的测试,需要一个以上的数据验证漏洞工作。在每一个显示的模式中,应用程序应该在信任和处理这些数据前对数据进行验证。我们的测试目的是验证应用程序实际上是否执行了验证并且不信任其输入数据。


阻断服务测试

最常见的阻断服务(DoS)攻击令网络中其它合法用户不能正常访问服务器。网络DoS攻击的基本概念是由一个恶意用户发送足够多的流量给目标机器,使其无法满足接受到的要求数目。当恶意用户使用很多机器对某一个目标机器进行发送流量时,这通常被叫做分布式阻断服务攻击。这些类型的攻击通常情况下超出了网页应用开发者所写代码能够阻止的范围。这种“网络管道战役”在网络结构途径之下得以缓和。不管怎样,应用中有很多的弱点可以被恶意用户利用,导致某功能或者整个的网页无法使用。这些麻烦是由应用中的程序错误引起的,通常是因为恶意用户输入。这一部分着重在单一恶意用户使用单一机器引起的应用层攻击。


测试项说明
SQL通配符攻击测试SOL通配符攻击是利用几个通配符强制数据库执行占用大量CPU处理时间的查询密集队列。这个漏洞通常存在于网络应用程序的搜索功能。成功的攻击操作会引起阻断服务攻击。

锁定用户账户在这个测试里面我们检查攻击者能否通过重复尝试用错误密码登陆,导致合法用户账户被锁定。

缓存溢出通过检查能否在溢出目标应用的一个或多个数据结构的环境下引起阻断服务攻击。

分配用户指定对象该项测试检查是否有可能使用分配大量对象的方法来耗尽服务器资源。

将用户输入作为循环计数器检查是否可能让应用强制循环一段需要很多计算机资源的代码,目的是减弱总体性能。

将用户提供的数据写到磁盘这个测试中检查是否能通过在目标磁盘中写满日志来创造DoS环境。

释放资源失败利用这个测试,我们可以检查应用程序在使用后是否适当的释放资源(文件或内存)。

存储过多会话数据在这个测试里,我们检查是否可以通过向用户会话分配大量数据的功能和应用,来耗尽内存资源。


WEB服务测试

SOA(服务面向结构)/Web服务应用程序是日渐重要的系统,它们可以使作业交互。同时它们以前所未有的速度在发展着。Web服务“客户”不是网络前段而是后端服务器。Web服务跟其它服务一样是暴露于网络的,但是可以在其它传输协议HTTP,FTP,SMTP,MO上使用。Web服务框架在连接XML,SOAP,WSDL和UDDI技术中利用HTTP协议(作为标准网络应用程序)。


测试项说明
WEB Service信息收集进行Web服务测试的第一步是确定WS入口点和链接图标,识别WEB服务的版本等信息。

WSDL测试一旦识别出WSDL,我们可以根据已知接入点进行测试。找到接入点和试图请求一个非标准SOAP请求操作,要检查Web服务的WSDL。确保WS不会泄露机密信息。

XML结构测试XML需要有正确的格式才能正确的运作。当服务器端进行XML语句分析时,不合规格的XML将会失败。解析器需要在整个XML信息中按照序列的方式彻底运行,这样才能评估XML格式是否正确。XML解析器非常占用CPU资源。某些攻击向量发送非常大或者不合规格的XML信息来利用这个漏洞。为了在接收服务器上通过占用全部内存和CPU资源来创建一个阻断服务攻击,测试者可以创建相应结构的XML文件。如上所述,这将通过超负荷XML语言分析器增加CPU的负担。

XML内容级别测试内容级别的攻击对象是Web服务及其使用的应用程序的主机服务器,包括Web服务器、数据库、应用程序服务器、操作系统等等。内容级别攻击向量包括:1)SQL注入或者XPath注入2)缓存溢出3)命令注入。

HTTP获取参数/REST测试许多XML应用程序是通过GET方式查询传输参数来使用的。有时候他们都被认是“REST-style"Web服务(REST=RepresentationalStateTransfer)。在GET字符串(例如,特别长的参数(2048字符))、SQL语句/注入(或OS注入参数)中传输恶意内容时,这些Web服务会受到攻击。

SOAP附件测试这一部分描述了接受附件的Web服务的攻击向量。危险存在于在附加到服务器和分配到用户的时候。二进制文件包括可能包含恶意软件的可执行和文档类型,并有很多种使用Web服务传递的方法。这些文件可以作为一个Web服务渠道的参数传递;也可能作为使用SOAP的附件传递,它们还可能使用DIME(DirectInternetMessageEncapsulation)和WS附件传递。攻击者可以创建一个XML文档(SOAP信息)用于向Web服务发送包含恶意软件的附件。为确保Web服务主机检查SOAP附件,测试应该包含在网络应用程序测试计划中。

重放测试测试Web服务的重现漏洞,威胁在于攻击者可以假装成一个合法用户的身份,在不被合法用户察觉的情况下进行一些恶意操作。


AJAX测试

AJAX应用程序容易存在各种传统的Web应用程序漏洞。不安全代码的做法可能会导致SQLinjection漏洞、在用户提供的输入中的错误信任会导致参数篡改漏洞、同时请求适当的身份验证和授权的失败可能会导致机密性和完整性问题。此外,AJAX应用程序容易受到新类别的攻击,如跨站请求伪造(XSRF)。


测试项说明
AJAX漏洞使用更多需要确保安全的输入增加攻击范围,暴露应用程序的内部功能,客户端在没有内置安全和编码机制情况下访问第三方资源,不能保护认证信息和会话,客户端和服务器端代码之间的界线模糊,造成安全错误。

检测AJAX对AJAX应用程式的大多数攻击和传统Web应用程式攻击相似,寻找具体参数的使用,以找出安全漏洞。寻找异步调用的目标端点,然后确定适当的请求格式。

六、风险规避措施

渗透测试过程中可能对业务产生影响,公司将采取以下措施来减小测试风险:

1)在渗透测试中不使用含有拒绝服务的测试策略。

2)渗透测试时间尽量安排在业务量不大的时段或者晚上。

3)在渗透测试过程中如果出现被评估系统没有响应的情况,应当立即停止测试工作,与用户相关人员一起分析情况,在确定原因后,并待正确恢复系统,采取必要的预防措施(比如调整测试策略等)之后,才可以继续进行。

4)测试人员会与用户网站系统和安全管理人员保持良好沟通,随时协商解决出现的各种难题。

5)测试方自控:由渗透测试方对本次测透测试过程中的三方面数据进行完整记录:操作、响应、分析,最终形成完整有效的渗透测试报告提交给用户。