Web应用安全测试

本文主要介绍了Web应用安全测试的各个阶段,包括Web漏洞扫描工具测试、服务器信息收集、文件和目录测试、认证与会话管理测试、信息泄漏测试、输入数据测试以及跨站脚本攻击测试。详细阐述了AppScan的使用以及各种安全测试方法,强调了自动化工具无法完全替代业务逻辑的理解和手动测试的重要性。
摘要由CSDN通过智能技术生成

缩略语清单

缩略语

全称

CRLF

\r\n回车换行

LDAP

Lightweight Directory Access Protocol 轻量级目录访问协议

MML

man-machine language 人机交互语言

SessionID

标志会话的ID

Web Service

Web服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。

SOAP

Simple Object Access Protocol 简单对象访问协议

XFS

Cross Frame Script 跨帧脚本

XSS

Cross Site Script 跨站脚本

 


 

1      测试过程

测试主要包括主动模式和被动模式两种。在被动模式中,测试人员尽可能的了解应用逻辑:比如用工具分析所有的HTTP请求及响应,以便测试人员掌握应用程序所有的接入点(包括HTTP头,参数,cookies等);在主动模式中,测试人员对应用系统、后台等进行渗透测试,其可能造成的影响主要是数据破坏、拒绝服务等。一般测试人员需要先熟悉目标系统,即被动模式下的测试,然后再开展进一步的分析,即主动模式下的测试。

 

2      Web安全测试

2.1     Web漏洞扫描工具测试

自动化扫描工具只能检测到部分常见的漏洞(如跨站脚本、SQL注入等),不是针对用户代码的,也就是说不能理解业务逻辑,无法对这些漏洞做进一步业务上的判断。往往最严重的安全问题并不是常见的漏洞,而是通过这些漏洞针对业务逻辑和应用的攻击。

Web目前分为application和Web service两部分。Application指通常意义上的Web应用,而Web service是一种面向服务的架构的技术,通过标准的Web协议(如HTTP、XML、SOAP、WSDL)提供服务。

2.1.1       AppScan application扫描测试

测试用例名称

AppScan application 扫描测试

测试目的

利用自动化的Web安全扫描工具AppScan进行扫描,以发现Web应用中存在的常见漏洞

测试条件

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。在有条件的情况下,可以综合使用。

测试结果

 

 

2.1.2       AppScan Web Service 扫描测试

测试用例名称

AppScan Web Service 扫描测试

测试目的

利用自动化的Web安全扫描工具AppScan进行扫描,以发现Web Service中存在的漏洞

测试条件

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、  扫描完成,保存扫描结果,并对结果进行分析

预期结果

经过分析确认以后的扫描结果中不存在信息提示以上等级的漏洞。

备注

注意:该用例的执行对被测系统的性能影响比较大,而且可能导致一些垃圾数据,建议只在测试环境执行。

由于自动化工具在很多情况下只是提示一种漏洞存在的可能,因此需要对所有的结果进行人工的分析判断。

测试结果

 

2.2     服务器信息收集

2.2.1       运行帐号权限测试

测试用例名称

运行帐号权限测试

测试目的

运行Web服务器的操作系统帐号权限越高,那么Web遭到攻击产生的危害就越大。因此,不应使用“root”、“administrator”、等特权帐号或高级别权限的操作系统帐号来运行Web,应该尽可能地使用低级别权限的操作系统帐号。

测试条件

1、  已知Web网站IP地址和OS登陆帐号、密码

执行步骤

1、  登陆Web服务器操作系统

2、  查看运行Web服务器的操作系统帐号,不是“root”、“admin”等特权帐号或高级别权限帐号,如果是则存在漏洞。

Ÿ   linux:使用“ps –ef|grep java”命令,返回结果第一列的操作系统用户就是运行Web服务器的帐号;

预期结果

没有使用“root”、“admin”等特权操作系统帐号运行Web。

测试结果

 

2.2.2       Web服务器端口扫描

测试用例名称

Web服务器端口扫描

测试目的

有时Web应用服务器除业务端口外还会开放一些默认端口(如tomcat开放的8080),这些默认端口对最终用户是不需要开放的,而且也不会用于维护,容易被攻击,本测试目的在于发现服务器上未使用的Web端口。

测试条件

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进行端口扫描》

测试结果

 

2.2.3       HTTP方法测试

测试用例名称

开放HTTP方法测试

测试目的

有些Web服务器默认情况下开放了一些不必要的HTTP方法(如DELETE、PUT、TRACE、MOVE、COPY),这样就增加了受攻击面。

测试条件

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),则验证这些防范是否可用

6、  如果方法可用则说明存在漏洞,测试不通过。

预期结果

不包含不安全的HTTP方法(如DELETE、PUT、TRACE、MOVE、COPY)

备注

由于不同的Web服务器支持的HTTP协议版本不同,如果系统不支持HTTP/1.0,那么步骤4返回 “HTTP/1.0 400 Bad Request”;这种情况下,应该更改步骤4的输入行为OPTIONS / HTTP/1.0

测试结果

 

2.2.4       HTTP PUT方法测试

测试用例名称

HTTP PUT方法测试

测试目的

有些Web服务器开放了PUT方法,攻击者能够通过该方法上传任意文件到Web服务器的一些目录中去。包括Web木马程序。

测试条件

1、  已知Web网站IP地址

2、  Web业务正常运行

3、  测试用机安装了IISPUTScanner测试工具

执行步骤

1、  运行IISPUTScanner.exe

2、  在Start IP和End IP输入框中输入Web服务器的IP地址,在Port输入框中输入对应的端口,选中“Try to upload file”和“Try on other systems”,如图:

3、  点击Scan按钮

4、  观察扫描结果

预期结果

工具的“PUT”栏的值不为“YES”,Web服务器上没有新创建的alert.txt文件

备注

本测试适用于所有的Web服务器,不仅仅是IIS。

测试结果

 

2.2.5       HTTP DELETE方法测试

测试用例名称

HTTP DELETE方法测试

测试目的

有些Web服务器开放了DELETE方法,攻击者能够通过该方法删除Web服务器上的文件。

测试条件

1、  已知Web网站IP地址

2、  Web业务正常运行

3、  Web网站存在/alert.txt文件(如果没有,手工创建)

执行步骤

1、  点击“开始”-“运行”,输入cmd并回车,运行cmd.exe

2、  输入telnet IP 端口 (其中IP和端口按实际情况填写,用空格隔开,比如:telnet 192.168.4.86 80)

3、  回车

4、  在新行中输入如下一行,并回车

DELETE /alert.txt HTTP/1.0

5、  查看Web服务器上alert.txt是否被删除

预期结果

Web服务器上alert.txt文件依然存在

备注

由于不同的Web服务器支持的HTTP协议版本不同,如果系统不支持HTTP/1.0,那么步骤4返回 “HTTP/1.0 400 Bad Request”;这种情况下,应该更改步骤4的输入行为DELETE /index.jsp HTTP/1.0

测试结果

 

2.2.6       HTTP TRACE方法测试

测试用例名称

HTTP TRACE方法测试

测试目的

有些Web服务器开放了TRACE方法(主要是用于客户端通过向Web服务器提交TRACE请求来进行测试或获得诊断信息),攻击者能够通过该方法构造跨站攻击。

测试条件

1、  已知Web网站IP地址

2、  Web业务正常运行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值