文档名称 文档密级 初始化被动模式 接口测试 信息获取Google Hacking Web结构获取熟悉业务逻辑 逻辑处理拒绝服务主动 模式 日志检查 归档测试 权限测试 参数分析 会话管理 命令执行上传下载 跨站脚本认证测试 目录列表 备份文件 后台查找 越权操作 异常处理 注入测试 信息窃取 文件包含 暴力破解 认证绕过 造成的影响 信息泄漏 数据破坏 拒绝服务 身份仿冒 完成 3 Web安全测试规范 3.1 自动化Web漏洞扫描工具测试 自动化扫描工具只能检测到部分常见的漏洞(如跨站脚本、SQL注入等),不是针对用户代码的,也就是说不能理解业务逻辑,无法对这些漏洞做进一步业务上的判断。往往最严重的安全问题并不是常见的漏洞,而是通过这些漏洞针对业务逻辑和应用的攻击。
Web目前分为application和Web service两部分。Application指通常意义上的Web应用,而Web service是一种面向服务的架构的技术,通过标准的Web协议(如HTTP、XML、SOAP、
2013-8-9
华为机密,未经许可不得扩散
第11页, 共63页
文档名称 文档密级
WSDL)提供服务。
3.1.1 AppScan application扫描测试
编号 测试用例名称 测试目的 SEC_Web_TOOL_01 AppScan application 扫描测试 利用自动化的Web安全扫描工具AppScan进行扫描,以发现Web应用中存在的常见漏洞 用例级别 测试条件 1 1、 已知Web服务器域名或IP地址 2、 Web业务运行正常 3、 测试用机上安装了AppScan 执行步骤 1、 双击运行AppScan,选择file—new新建扫描,选择扫描模板default 2、 弹出扫描配置对话框,选择扫描类型,默认为Web Application Scan,点击next 3、 在Starting URL中填入需扫描的目标服务器域名或IP地址,其他配置不需修改,点击next 4、 选择No Login,点击next 5、 不需修改任何参数,点击next 6、 不需修改参数,选择Start a full automatic scan,点击finish完成配置,开始扫描 7、 扫描完成,保存扫描结果,并对结果进行分析 预期结果 备注 经过对扫描结果分析,确认不存在“中等等级”及以上级别的漏洞。 注意:该用例的执行对被测系统的性能影响比较大,而且可能导致一些垃圾数据,建议只在测试环境执行。 由于自动化工具在很多情况下只是提示一种漏洞存在的可能,因此需要对所有的结果进行人工的分析判断。分析过程参考以下章节的测试项,使用辅助工具或者是手动验证。 业界常用的自动化扫描工具还有WebInspcet,NStalker,Acunetix Web Vulnerability Scanner。在有条件的情况下,可以综合使用。 测试结果
2013-8-9
华为机密,未经许可不得扩散 第12页, 共63页
文档名称 文档密级
3.1.2 AppScan Web Service 扫描测试
编号 测试用例名称 测试目的 SEC_Web_ TOOL_02 AppScan Web Service 扫描测试 利用自动化的Web安全扫描工具AppScan进行扫描,以发现Web Service中存在的漏洞 用例级别 测试条件 1 1、 已知Web服务器域名或IP地址 2、 Web业务运行正常 3、 目标系统使用了Web Service服务 4、 测试用机上安装了AppScan 执行步骤 1、 双击运行AppScan,选择file—new新建扫描,选择扫描模板default 2、 弹出扫描配置对话框,选择扫描类型,默认为Web Service Scan,点击next 3、 在Starting URL中填入需扫描的目标服务器域名或IP地址,其他配置不需修改,点击next 4、 不需修改任何参数,点击next 5、 不需修改任何参数,点击Finish完成配置,开始扫描 6、 扫描完成,保存扫描结果,并对结果进行分析 预期结果 备注 经过分析确认以后的扫描结果中不存在信息提示以上等级的漏洞。 注意:该用例的执行对被测系统的性能影响比较大,而且可能导致一些垃圾数据,建议只在测试环境执行。 由于自动化工具在很多情况下只是提示一种漏洞存在的可能,因此需要对所有的结果进行人工的分析判断。 测试结果 3.2 服务器信息收集 3.2.1 运行帐号权限测试
编号 测试用例名称 测试目的 SEC_Web_ SERVERINFO_01 运行帐号权限测试 运行Web服务器的操作系统帐号权限越高,那么Web遭到攻击产生的危害就越大。因此,不应使用“root”、“administrator”、等特权帐号或高级别权限的操作系统帐号来运行Web,应该尽可能地使用低级别权限的操作系统帐号。 用例级别 2013-8-9
1 华为机密,未经许可不得扩散 第13页, 共63页
测试条件 执行步骤 文档名称
1、 已知Web网站IP地址和OS登陆帐号、密码 1、 登陆Web服务器操作系统 文档密级
2、 查看运行Web服务器的操作系统帐号,不是“root”、“administrator”等特权帐号或高级别权限帐号,如果是则存在漏洞。 ? ? window:打开任务管理器,选择“进程”页,勾选左下方的“显示所有用户的进程”,检查运行Web服务器的帐号; unix:使用“ps –ef|grep java”命令,返回结果第一列的操作系统用户就是运行Web服务器的帐号; 预期结果 备注 测试结果 没有使用“root”、“administrator”等特权操作系统帐号运行Web。 3.2.2 Web服务器端口扫描
编号 测试用例名称 测试目的 SEC_Web_SERVERINFO_02 Web服务器端口扫描 有时Web应用服务器除业务端口外还会开放一些默认端口(如Jboss开放的8083),这些默认端口对最终用户是不需要开放的,而且也不会用于维护,容易被攻击,本测试目的在于发现服务器上未使用的Web端口。 用例级别 测试条件 1 1、 已知Web服务器域名或IP地址,假设IP地址为192.168.1.1 2、 测试用机安装了nmap,假设路径为d:\\nmap 执行步骤 1、 打开命令提示符,切换到nmap路径下,输入cd /d d:\\nmap 2、 运行nmap –n –P0 –sS –sV –p1-65535 –oX scan_report.xml 192.168.1.1 3、 使用浏览器打开scan_report.xml 4、 观察结果,看是否为必须开放的Web服务端口。 预期结果 备注 测试结果 系统未开放业务不需要使用的端口。 各种参数扫描请参考《利用nmap进行端口扫描》 3.2.3 HTTP方法测试
编号 测试用例名称 2013-8-9
SEC_Web_ SERVERINFO_04 开放HTTP方法测试 华为机密,未经许可不得扩散
第14页, 共63页
测试目的 文档名称 文档密级
有些Web服务器默认情况下开放了一些不必要的HTTP方法(如DELETE、PUT、TRACE、MOVE、COPY),这样就增加了受攻击面。 用例级别 测试条件 执行步骤 1 1、 已知Web网站IP地址及Web访问端口 2、 Web业务正常运行 1、 点击“开始”-“运行”,输入cmd并回车,运行cmd.exe 2、 输入telnet IP 端口 (其中IP和端口按实际情况填写,用空格隔开) 3、 回车 4、 在新行中输入如下一行,并回车 OPTIONS / HTTP/1.1 5、 观察返回结果中的Allow的方法列表 返回结果样例: HTTP/1.1 200 OK Server: Apache-Coyote/1.1 X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5 Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS Content-Length: 0 Date: Mon, 29 Jun 2009 08:02:47 GMT Connection: close 如果返回结果中包含不安全的HTTP方法(DELETE、PUT、TRACE、MOVE、COPY),则验证这些防范是否可用(参考3.2.4 / 3.2.5 / 3.2.6 / 3.2.7 / 3.2.8) 6、 如果方法可用则说明存在漏洞,测试不通过。 预期结果 备注 不包含不安全的HTTP方法(如DELETE、PUT、TRACE、MOVE、COPY) 由于不同的Web服务器支持的HTTP协议版本不同,如果系统不支持HTTP/1.0,那么步骤4返回 “HTTP/1.0 400 Bad Request”;这种情况下,应该更改步骤4的输入行为OPTIONS / HTTP/1.0 测试结果 3.2.4 HTTP PUT方法测试
编号 测试用例名称 测试目的 SEC_Web_ SERVERINFO_03 HTTP PUT方法测试 有些Web服务器开放了PUT方法,攻击者能够通过该方法上传任意文件到Web服务器的一些目录中去。包括Web木马程序。 用例级别 测试条件 1 1、 已知Web网站IP地址 2、 Web业务正常运行 2013-8-9
华为机密,未经许可不得扩散
第15页, 共63页