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

垂直权限提升:


编号


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只是简单的递增关系),则可以省略。

时间: 2024-11-10 15:06:49

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

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

会话复杂度: 编号 Web_ Sess_01 用例名称 会话复杂度测试 用例描述 测试目标系统产生的session id是否具备足够的复杂度. 严重级别 高 前置条件 1.  目标系统使用登录会话机制. 2.  目标web应用可访问,业务正常运行. 3.  已安装http拦截代理(burp.fiddler或webscarab均可). 执行步骤 1.  开启burp,设置对http请求进行拦截,并在浏览器中配置代理. 2.  打开目标系统的登录页面,使用正确的用户名和密码提交登录,比如: POST

Web安全测试指南--认证

认证: 5.1.1.敏感数据传输: 编号 Web_Authen_01_01 用例名称 敏感数据传输保密性测试 用例描述 测试敏感数据是否通过加密通道进行传输以防止信息泄漏. 严重级别 高 前置条件 1.  已明确定义出敏感数据范围(比如口令.短信验证码和身份证号等). 2.  目标web应用可访问,业务正常运行. 3.  已安装http拦截代理(burp.fiddler或webscarab均可). 执行步骤 1.  开启burp,设置对http请求进行拦截,并在浏览器中配置代理. 2.  访问w

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

上传: 编号 Web_FileSys_01 用例名称 上传功能测试 用例描述 测试上传功能是否对上传的文件类型做限制. 严重级别 高 前置条件 1.  目标web应用可访问,业务正常运行. 2.  目标系统存在上传功能,并且有权限访问使用. 3.  已安装http拦截代理(burp.fiddler或webscarab均可). 4.  目标系统使用http而不是ftp等其它方式实现上传. 5.  具有登录目标服务器后台的账户和权限. 执行步骤 1.  登录目标系统并访问具有上传功能的页面. 2. 

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

1.会话管理 3.1.会话管理安全规则 1 避免在URL携带session id. 2 使用SSL加密通道来传输cookie. 3 避免在错误信息和调试日志中记录session id. 4 使用框架自带的或业界公认的安全函数来生成session id(参考附录11.4). 5 开发或引入无状态的模块(比如shipin7 nodejs和视频留言模块)时,应与web模块的session机制结合,防止越权或无授权攻击. 6 当使用加密通道SSL/TLS传输cookie时,为其设置“secure”属性.

小白入坑 Web 渗透测试必备指南

本文来自作者 肖志华 在 GitChat 上分享「Web 渗透测试入坑必备指南」,「阅读原文」查看交流实录 「文末高能」 编辑 | 黑石 小白如何快速入门 由于本人技术性受限制,可能部分内容显得不那么清晰,如有疑问请读者圈联系我.再者,内容不会完全讲清楚,因为本身话题的原因,部分会一笔带过. 小白该如何踏入 Web 安全这个坑呢?我的经历是,兴趣所在.我是野路子,全靠兴趣来自学. 现 Web 安全如果要讲入门,要求并不高,两三天就能入门,而我也仅在入门级别. 我接触这个比较早,最初是在10年还是

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

经一周的研究学习,看了国内的H+.HUI等,国外的PaperDashboardPro.Make.Metronic BootStrap等,最终选定用一个轻量的,适合中国人的,来自DTcms的后台管理UI来改造吉日嘎拉的通用权限管理Web端的UI. js+css+图片文件如下 新增一个Menu.ashx文件,用于输出当前用户权限可以查看的所有菜单. 新增Main.aspx文件用于主框架,所有内容也放在名为fraContent的iframe中.其它涉及的登录跳转小修改暂时略过. 有图有真相,先上图:

RDIFramework.NET ━ 9.9 角色权限管理 ━ Web部分

RDIFramework.NET ━ .NET快速信息化系统开发框架 9.9  角色权限管理 -Web部分 角色权限管理模块主要是对角色的相应权限进行集中设置.在角色权限管理模块中,管理员可以添加或移除指定角色所包含的用户.可以分配或授予指定角色的模块(菜单)的访问权限.可以收回或分配指定角色的操作(功能)权限.可以对所有角色.用户.模块(菜单).操作(功能)权限进行集中批量设置,角色户授权范围的设置(类似于用户授权范围的设置),表字段权限的设置以及表约束条件权限的设置等.角色权限管理主界面如下

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

RDIFramework.NET ━ .NET快速信息化系统开发框架 9.8 用户权限管理 -Web部分 在实际应用中我们会发现,权限控制会经常变动,如:需要调整角色的分配,需要收回与授予某些角色.用户可访问的模块(菜单)与相应的操作权限.需要给某些角色添加与移除相应的用户等等,如果没有一个灵活可靠的配置管理工具将会使权限控制变得十分麻烦.用户权限管理模块就是为了方便用户.角色权限的集中统一管理而开发的模块.在用户权限管理模块,操作员可以添加或移动用户到指定的角色.可以分配或授予指定用户的模块(

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

扩展了吉日嘎拉的Web端权限管理功能后,每次添加菜单倒没啥问题,毕竟菜单的数量有限,可是每增加一个模块.功能或者说权限控制点,就得针对各种常规操作,新增很多遍. 浪费时间,还容易出错.新增了一个字典表ItemsActionCategory,将常用的操作都记录到这个表,然后新增一个批量增加的功能,一键增加几十个操作控制. 保存后的效果如下,这里的规则:模块.操作,中间用.号连接. 一切从实用出发,减少重复劳动,节省时间,多出来的时间可以去多赚钱+多陪家人.