当前位置: 首页 > news >正文

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浏览器

转载于:https://www.cnblogs.com/fishou/p/4203259.html

相关文章:

  • C#阶段小结
  • gnome3桌面
  • erlang浅谈
  • 安卓下拉刷新
  • Android点击EditText文本框之外任何地方隐藏键盘的解决办法
  • Jquery 调用.net WebService 返回Json、XML方法
  • Silverlight 之 创建
  • hdu 5122 K.Bro Sorting
  • ios编译库文件时出现的问题
  • 给编程一个你热爱它的机会
  • Qt 静态编译后的exe太大, 可以这样压缩.
  • 企业报销系统完整设计方案
  • FBX .NET
  • Struts 1 之配置文件
  • ios判断是否有中文
  • 【css3】浏览器内核及其兼容性
  • Angular 4.x 动态创建组件
  • ES6 学习笔记(一)let,const和解构赋值
  • es6(二):字符串的扩展
  • Java,console输出实时的转向GUI textbox
  • Making An Indicator With Pure CSS
  • markdown编辑器简评
  • python大佬养成计划----difflib模块
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • SpiderData 2019年2月16日 DApp数据排行榜
  • windows下使用nginx调试简介
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从重复到重用
  • 第十八天-企业应用架构模式-基本模式
  • 给第三方使用接口的 URL 签名实现
  • 深入 Nginx 之配置篇
  • 什么软件可以剪辑音乐?
  • 协程
  • 中文输入法与React文本输入框的问题与解决方案
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​ubuntu下安装kvm虚拟机
  • # Java NIO(一)FileChannel
  • #pragam once 和 #ifndef 预编译头
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (javascript)再说document.body.scrollTop的使用问题
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (第一天)包装对象、作用域、创建对象
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (十) 初识 Docker file
  • (四)模仿学习-完成后台管理页面查询
  • (五)c52学习之旅-静态数码管
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)插入排序
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .Net 高效开发之不可错过的实用工具