• Web安全测试指南--权限管理


    垂直权限提升:

    编号

    Web_Author_01

    用例名称

    垂直权限提升测试

    用例描述

    测试用户是否具有使用超越其角色范围之外的权限。

    严重级别

    前置条件

    1、  目标系统拥有不同等级的角色和权限(比如:管理员和普通用户),并能够区分不同级别的权限角色能够访问的资源。

    2、  目标web应用可访问,业务正常运行。

    3、  已安装http拦截代理(burpfiddlerwebscarab均可)。

    执行步骤

    1、  开启burp,设置对http请求进行拦截,并在浏览器中配置代理。

    2、  使用高级别权限账号(比如:管理员账号)登录目标系统。

    3、  访问某个只有该高级别权限账号才能够访问的接口或者资源,比如:

    POST /admin/addUser.jsp HTTP/1.1  #添加账户接口

    Host: www.example.com

    Cookie: Sessionid = 21232f297a57a5a743894a0e4a801fc3

    [other HTTP headers]

    userName=test&phoneNum=138xxx

    4、  使用burp拦截该HTTP请求并转入burp repeater

    5、  注销高级别权限账号。

    6、  使用另外一个低级别权限账号(比如:普通用户)登录目标系统。

    7、  访问任意接口或资源并用burp拦截对应的HTTP请求,比如:

    POST /commonUser/info.jsp HTTP/1.1  #查询账户信息接口

    Host: www.example.com

    Cookie: Sessionid = fab0ec1c41247e83e2189f2094952eb4

    [other HTTP headers]

    8、  复制该HTTP请求的cookie字段,然后替换掉burp repeater中的高级别账户产生的HTTP请求的cookie字段,比如:

    POST /admin/addUser.jsp HTTP/1.1  #添加账户接口

    Host: www.example.com

    Cookie: Sessionid = fab0ec1c41247e83e2189f2094952eb4 #替换cookie

    [other HTTP headers]

    userName=test&phoneNum=138xxx

    9、  burp repeater中重新向目标系统发送该被替换过cookieHTTP请求,观察目标系统的返回结果。

    预期结果

    目标系统返回类似“没有权限”的信息或者对应的错误码。

    测试结果

    备注

    5.2.2、水平权限提升:

    编号

    Web_Author_02

    用例名称

    权限提升测试

    用例描述

    测试用户是否具有访问其自身以外的受限访问的资源。

    严重级别

    前置条件

    1、  目标系统拥有多个不同的账户,并且拥有各自受限访问资源信息(比如:个人信息),并且这些资源信息使用资源标签进行区分。

    2、  目标web应用可访问,业务正常运行。

    3、  已安装http拦截代理(burpfiddlerwebscarab均可)。

    执行步骤

    1、  开启burp,设置对http请求进行拦截,并在浏览器中配置代理。

    2、  使用账号A登录目标系统。

    3、  访问某个只有账号A才能够访问的资源,比如:

    POST /info/Info.jsp HTTP/1.1  #通过userID查询对应的账户信息

    Host: www.example.com

    Cookie: Sessionid = 21232f297a57a5a743894a0e4a801fc3  #账户A cookie

    [other HTTP headers]

    userID=111111  #账户AuserID

    4、  使用burp拦截该HTTP请求并转入burp repeater

    5、  记录账户A的资源标签(比如:userID)并注销账户A

    6、  使用账号B登录目标系统。

    7、  访问同样的接口并用burp拦截对应的HTTP请求,比如:

    POST /info/Info.jsp HTTP/1.1  #通过userID查询对应的账户信息

    Host: www.example.com

    Cookie: Sessionid = fab0ec1c41247e83e2189f2094952eb4  #账户B cookie

    [other HTTP headers]

    userID=222222  #账户BuserID

    8、  使用账户B的资源标签替换掉账户A的资源标签,比如:

    POST /info/Info.jsp HTTP/1.1  #通过userID查询对应的账户信息

    Host: www.example.com

    Cookie: Sessionid = fab0ec1c41247e83e2189f2094952eb4 #账户B cookie

    [other HTTP headers]

    userID=111111  #账户AuserID

    9、  向目标系统发送该被篡改过的请求,观察目标系统的返回结果。

    预期结果

    目标系统返回类似“没有权限”的信息或者对应的错误码。

    测试结果

    备注

    1、  验证水平权限提升时,两个账号可以是相同权限级别的(比如:两个普通用户账号),也可以是不同权限级别的(比如:一个管理员账号和一个普通账号),但更加建议使用两个不同权限级别的账号做测试。

    2、  步骤345不是必须要执行的步骤,如果能够直接获取到其它账户的私有资源标签或者私有资源标签可以预测(比如:userID只是简单的递增关系),则可以省略。

    提示:如果IE显示不正常,请使用chrome浏览器

  • 相关阅读:
    MySql状态查看方法 MySql如何查看连接数和状态?
    MySQL连接数超过限制的解决方法
    JS正则表达式获取分组内容实例
    jquery data方法获取某个元素上事件
    javascript浮点数转换成整数三种方法
    ThinkPHP CURD方法中field方法详解
    python3.3使用tkinter实现猜数字游戏代码
    Expo大作战(二十四)--expo sdk api之Accelerometer
    Expo大作战(二十三)--expo中expo kit 高级属性(没干货)
    Expo大作战(二十二)--expo分离后的部署(expokit)
  • 原文地址:https://www.cnblogs.com/fishou/p/4203259.html
Copyright © 2020-2023  润新知