川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

软件测试之权限管理测试

作者:川石学院 日期:2021-03-15 15:45:45 点击数:

        目前存在着两种越权操作类型:横向越权操作和纵向越权操作。前者指的是攻击者尝试访问与 其拥有相同权限的用户的资源;而后者指的是一个低级别攻击者尝试访问高级别用户的资源。如图 12-18 所示。

软件测试之权限管理测试(图1)

        权限管理测试更多的是进行人工分析,自动化工具无法了解页面的具体应用场景及逻辑判断过 程。因此这里的测试需要首先测试人员理解测试业务系统的逻辑处理流程,并在此基础上进行如下 测试:页面是否进行权限判断; 页面提交的资源标志是否与已登录的用户身份进行匹配比对; 用户登录后,服务器端不应再以客户端提交的用户身份信息为依据,而应以会话中保存 的已登录的用户身份信息为准; 必须在服务器端对每个请求 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:观察服务器处理,服务器返回登录失败。

        (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</a>^p<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 保存的结果文件。 

        软件测试之权限管理测试(图2)

软件测试之权限管理测试(图3)

软件测试之权限管理测试(图4)

软件测试之权限管理测试(图5)

        步骤 14:单击 OK 按钮返回扫描配置对话框(即步骤 7 的对话框),单击 Next 按钮。 步骤 15:在步骤 8 所示对话框中,不需修改参数,单击 Finish 按钮开始进行越权扫描。 步骤 16:扫描完成后保存结果,并对结果进行分析,扫描的结果文件中不应提示存在漏洞。


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-03-15 15:45:45
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-03-15 15:45:45
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-03-15 15:45:45
  • 建筑工程专业朱同学成功转行为软件测试人!2021-03-15 15:45:45
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-03-15 15:45:45
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-03-15 15:45:45
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-03-15 15:45:45
  • 文科生转行软件测试照样拿下高薪15K!2021-03-15 15:45:45
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-03-15 15:45:45
  • 毕业1年,迷茫的他最终选择转行软件测试2021-03-15 15:45:45