如何对Web Application进行安全性评估呢?简单点说就是利用合适的工具,模拟网络用户对Web Application(包括Web Server)进行***,对一些潜在的安全弱点进行测试,找出Web Application的Weaknesses,根据严重程度进行评估。

具体进行Web Application的测试时要全面系统。下面的一些步骤可以用来发现被评估程序的安全漏洞和弱点。

1. 程序探索 - 分析程序的技术,架构和功能

a. 标注操作系统,Web服务器版本好,和其它应用程序相关技术

b. 使用专业工具进行自动服务器扫描,标注已知的安全漏洞

c. 标注程序管理功能,比如程序中的隐藏页面

d. 标注程序中所有已知的URLs,建立站点测试地图

e. 标注操作系统中Web根路径

f. 标注并且用文档记录各个级别用户能使用的所有程序功能

g. 确定SSL的配置和允许的加密密码

2. 原代码详审

a. 如果可能在本地建立原代码环境

b. 找出程序中不需要的注释和其它信息,有可能给***者提供一些程序或***目标的信息。

c. 找出不需要的外部链接,可能会把***者引到某些***路径

d. 确定动态页面是否生成一些这样的代码,***者可以通过已知的漏洞利用这些代码来访问

e. 了解URLs,确定输入字段中要传输的数据

f. 找出程序页面中的隐藏标签,确定它们是否能被利用来传输不希望的数据到服务器

3. 输入验证

a. 确定服务器端流程处理程序是否由通过的特定meta字符组成

b. 查×××器端程序可能的”缓冲溢出”条件

c. 测试错误输出信息是否提供站点设计信息(如目录名,SQL语句等)

d. 确定是否HEX或Unicode值能被替换为ASCII字符来获取服务器端程序的安全

e. 确定“Server-side includes”是否能被用来在目标系统上执行任意命令

f. 修改隐藏标签和cookies,确定是否服务器端程序正确地验证这些数据

g. 试着在程序页面中插入客户端脚步代码,如JavaScript

h. 试着通过服务器端程序执行后端数据库SQL调用

i. 在所以的输入字段测试SQL注入***

j. 在所以的输入字段测试通过数据插入执行人员命令

4. 会话管理 - 使用会话管理中公开的漏洞,测试在程序中模拟其它用户

a. 验证会话管理中用户会话状态的维护

b. 验证会话ID被加密了,没有被增加,被预见,或者能被利用来***

c. 分析会话超时,看会话ID是否正确过期

d. 强力***login页面,或者会话ID,试图获得一个有效用户来访问。

e. 如果会话ID是通过cookie来传递的,确保会话ID在客户端没有被持久化

f. 禁止客户端cookie支持,观察是否任何会话数据通过URL被传递


在每个测试阶段,测试者都需要测试两个***场景:未认证用户和认证用户。认证用户能执行任何未认证用户能执行的功能,并且根据用户权限还可以