Web 系统的安全性测试包括以下内容:
(1)Web 漏洞扫描
(2)做事器端信息测试
(3)文件和目录测试
(4)认证测试
(5)会话管理测试
(6)权限管理测试
(7)文件上传下载测试
(8)信息泄露测试
(9)输入数据测试
(10)跨站脚本攻击测试
(11)逻辑测试
(12)搜索引擎信息测试
(13)Web Service 测试
(14)其他测试
本章节紧张给大家先容第(6)点——权限管理测试
目前存在着两种越权操作类型:横向越权操作和纵向越权操作。前者指的是攻击者考试测验访问与其拥有相同权限的用户的资源;而后者指的是一个低级别攻击者考试测验访问高等别用户的资源。如图12-18 所示
权限管理测试更多的是进行人工剖析,自动化工具无法理解页面的详细运用处景及逻辑判断过程。因此这里的测试须要首先测试职员理解测试业务系统的逻辑处理流程,并在此根本上进行如下测试:
>> 页面是否进行权限判断;
>>页面提交的资源标志是否与已登录的用户身份进行匹配比对;
>>用户登录后,做事器端不应再以客户端提交的用户身份信息为依据,而应以会话中保存的已登录的用户身份信息为准;
>>必须在做事器端对每个要求URL 进行鉴权,而不能仅仅通过客户真个菜单屏蔽或者Disable 按钮来限定。
(1)横向越权测试
横向越权测试包括两个方面:一是基于用户身份处理的横向越权操作测试;二是基于资源ID处理的横向越权操作测试。
Web 系统正常运行时,系统存在一个身份级别的掌握,如某个页面(www.testingba.com/abc.html)提交的参数中是否有一个代表用户身份的标志(如operator)或有一个代表资源的标志(如resource_id)。详细的测试步骤如下:
步骤1:运行WebScarab,选中Intercept requests。
步骤2:打开浏览器,在代理做事器地址中配置地址为127.0.0.1,端口为8008。
步骤3:利用用户A 的身份进行登录。
步骤4:进入www.testingba.com/abc.html 页面,提交数据。
步骤5:在弹出的对话框中的URLEncoded 页面中,变动用户身份标志(如operator)或变动资源标志(resource_id)参数,变动值为用户B 所属的用户身份标志或资源标志,再单击Accept Changes 按钮提交。
步骤6:不雅观察做事器处理,做事器返回登录失落败。
解释:如果参数是基于GET 办法的URL 通报,则不须要通过WebScarab 工具,直接在URL 中修正干系信息提交即可。
(2)纵向越权测试
利用横向越权的测试方法同样可以对纵向越权进行测试,如果从代码的角度来测试,也可以对该功能进行全面的覆盖测试。紧张包括三个方面:基于菜单URL 测试、基于源代码测试和漏洞扫描。
1)基于菜单URL 测试紧张是创造运用中是否存在URL 纵向越权操作,测试步骤如下:
步骤1:以超级管理员身份登录Web 系统。
步骤2:单击右键,在弹出菜单中选择“查看源文件”。
步骤3:在源文件中查找管理菜单(如用户管理)的URL 链接,并拷贝该URL 链接地址。
步骤4:退出登录,再利用普通用户身份登录该Web 系统。
步骤5:在浏览器地址栏中输入步骤3 中拷贝的URL 链接地址,并访问该URL。
步骤6:不雅观察普通用户是否能登录“用户管理”页面,并进行用户管理操作。正常的是普通用户不能访问“用户管理”的URL 地址。
2)基于源代码测试紧张是创造页面中是否存在纵向越权操作。假设源代码存放的目录为c:\webtest,页面为JSP,测试步骤如下:
步骤1:在“开始”→“运行”中输入cmd 命令,运行cmd 运用程序。
步骤2:切换到源代码所在的目录。
步骤3:输入命令dir /B .jsp>test.html。
步骤4:利用UltraEdit 编辑器打开test.html 文件。
步骤5:将^p 的内容更换为\"大众>test^pp<a href=\"大众http://192.168.1.1/webapp/,并保存修正。
步骤6:利用浏览器打开test.html 文件。
步骤7:依次单击页面中的test 链接,不雅观察访问结果,并进行记录。
步骤8:利用低级别的用户身份登录Web 系统,保持浏览器窗口,重复步骤7 的操作。
步骤9:不雅观察结果,结果该当是不能访问页面,系统提示干系信息。
3)漏洞扫描紧张是利用扫描工具来测试页面中是否存在纵向越权操作,测试步骤如下:
步骤1:安装AppScan 扫描工具。
步骤2:选择File→New 选项,新建扫描,扫描的模板设置为Default,并单击Next 按钮。
步骤3:在Starting URL 中输入待扫描的目标做事器域名或IP 地址,不修正其他项配置,单
击Next 按钮。
步骤4:设置Recorded Login 的值为默认值(recommended method),单击Next 按钮。
步骤5:在弹出的页面中,用权限较高的用户身份登录(如管理员admin 等)。
步骤6:关闭页面,弹出如图12-19 所示的对话框,单击OK 按钮。
步骤7:不修正任何参数,单击Next 按钮。
步骤8:不修正参数,选择Start a full automatic scan,单击Finish 按钮完成设置,并开始扫描。
步骤9:扫描完成后,保存扫描结果,如user.scan。
步骤10:重新开始再扫描一次,重复步骤1~3。
步骤11:在步骤4 中选择用户身份时,选择NoLogin 单选项,如图12-20 所示,单击Next
按钮。
步骤12:在弹出的配置对话框中(即步骤7 的对话框)中单击Advanced Test Settings 按钮,
弹出如图12-21 所示的对话框,单击Configure 按钮。
步骤13:弹出如图12-22 所示的窗口,单击Add 按钮,添加已扫描的结果文件,在此步骤中
添加步骤9 保存的结果文件。
步骤14:单击OK 按钮返回扫描配置对话框(即步骤7 的对话框),单击Next 按钮。
步骤15:在步骤8 所示对话框中,不需修正参数,单击Finish 按钮开始进行越权扫描。
步骤16:扫描完成后保存结果,并对结果进行剖析,扫描的结果文件中不应提示存在漏洞。