垂直权限提升:

编号

Web_Author_01

用例名称

垂直权限提升测试

用例描述

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

严重级别

前置条件

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

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

3、  已安装http拦截代理(burp、fiddler或webscarab均可)。

执行步骤

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中重新向目标系统发送该被替换过cookie的HTTP请求,观察目标系统的返回结果。

预期结果

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

测试结果

备注

5.2.2、水平权限提升:

编号

Web_Author_02

用例名称

权限提升测试

用例描述

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

严重级别

前置条件

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

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

3、  已安装http拦截代理(burp、fiddler或webscarab均可)。

执行步骤

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  #账户A的userID

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  #账户B的userID

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  #账户A的userID

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

预期结果

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

测试结果

备注

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

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

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

Web安全测试指南--权限管理的更多相关文章

  1. web安全开发指南--权限管理

    2.1               访问控制安全规则 1 访问控制必须只能在服务器端执行. 2 只通过session来判定用户的真实身份,避免使用其它数据域的参数(比如来自cookie.hidden域 ...

  2. Web安全测试指南--会话管理

    会话复杂度: 5.3.2.会话预测: 5.3.3.会话定置: 5.3.4.CSRF: 5.3.5.会话注销: 5.3.6.会话超时:

  3. Web安全测试指南--认证

    认证: 5.1.1.敏感数据传输: 编号 Web_Authen_01_01 用例名称 敏感数据传输保密性测试 用例描述 测试敏感数据是否通过加密通道进行传输以防止信息泄漏. 严重级别 高 前置条件 1 ...

  4. Web安全测试指南--文件系统

    上传: 编号 Web_FileSys_01 用例名称 上传功能测试 用例描述 测试上传功能是否对上传的文件类型做限制. 严重级别 高 前置条件 1.  目标web应用可访问,业务正常运行. 2.  目 ...

  5. Web安全测试指南--信息泄露

    5.4.1.源代码和注释: 编号 Web_InfoLeak_01 用例名称 源代码和注释检查测试 用例描述 在浏览器中检查目标系统返回的页面是否存在敏感信息. 严重级别 中 前置条件 1.  目标we ...

  6. Web安全开发指南--会话管理

    1.会话管理 3.1.会话管理安全规则 1 避免在URL携带session id. 2 使用SSL加密通道来传输cookie. 3 避免在错误信息和调试日志中记录session id. 4 使用框架自 ...

  7. 基于吉日嘎底层架构的通用权限管理Web端UI更新:参考DTcms后台界面

    经一周的研究学习,看了国内的H+.HUI等,国外的PaperDashboardPro.Make.Metronic BootStrap等,最终选定用一个轻量的,适合中国人的,来自DTcms的后台管理UI ...

  8. Web端权限管理新增实用功能:批量增加操作,简单方便快速!

    扩展了吉日嘎拉的Web端权限管理功能后,每次添加菜单倒没啥问题,毕竟菜单的数量有限,可是每增加一个模块.功能或者说权限控制点,就得针对各种常规操作,新增很多遍. 浪费时间,还容易出错.新增了一个字典表 ...

  9. RDIFramework.NET ━ 9.8 用户权限管理 ━ Web部分

    RDIFramework.NET ━ .NET快速信息化系统开发框架 9.8 用户权限管理 -Web部分 在实际应用中我们会发现,权限控制会经常变动,如:需要调整角色的分配,需要收回与授予某些角色.用 ...

随机推荐

  1. perl多线程tcp端口扫描器(原创)

    perl多线程tcp端口扫描器(原创) http://bbs.chinaunix.net/thread-1457744-1-1.html perl socket 客户端发送消息 http://blog ...

  2. how to create view (windows)

    View Server List  IP address: 200.xx.xx.xx How to create a new view ssh new view server by your Unix ...

  3. C++智能指针: auto_ptr, shared_ptr, unique_ptr, weak_ptr

    本文参考C++智能指针简单剖析 内存泄露 我们知道一个对象(变量)的生命周期结束的时候, 会自动释放掉其占用的内存(例如局部变量在包含它的第一个括号结束的时候自动释放掉内存) int main () ...

  4. 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 关于卷积神经网络CNN,网络和文献中 ...

  5. Python图像处理库(1)

    转自:http://www.ituring.com.cn/tupubarticle/2024 第 1 章 基本的图像操作和处理 本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Py ...

  6. angularjs 微信授权登录 微信支付

    最近做一个项目,用angular 一个单页应用,打算打包成 跨平台移动App 以及在微信里面使用.给大家一个案例 首先,熟悉一下微信授权部分的源代码,如下所示: javascript 前端代码: va ...

  7. 关于星号(**/*.java)

    关于星号(**/*.java) (1)前面两个星号(**)表示在项目的所有文件夹(包括子文件夹)中的文件:*.java表示以 .java结尾的所有文件. (2)如果前面两个星号(**)没有,只有星号( ...

  8. JS中的对象和方法简单剖析

    众所周知,在js中对象就是精髓,不理解对象就是不理解js. 那么什么事js中的对象呢? 在js中,几乎一切皆对象: Boolean ,String,Number可以是对象(或者说原生数据被认作对象): ...

  9. 六十四 asyncio

    asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要 ...

  10. H264与AAC ES打包成MP4

    注意 设置图像的sps pps MP4AddH264SequenceParameterSet(file,video,sps,sizeof(sps)); MP4AddH264PictureParamet ...