越权问题解决优化方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_34750904/article/details/78929086
这是本人平时积累,拿去用:

问题背景:

越权漏洞是Web 应用常见的安全漏洞。其主要来源于开发者在对数据进行增删改查的时候,过分相信用户传递的数据,从而遗漏了用户权限的判定导致的,这种问题应该止于测试人员。当单独调用某接口时并没有完成相应权限的校验,造成越权操作现象。

问题应用相关实例场景:

一:用户A可以在B网站增加、删除、修改、查看用户C的相关信息。

二:后端的不同接口内部之间为了解耦没有进行权限验证

三:用户绕过浏览器操作,直接进行数据修改

如下图:

网上关于越权问题多是依靠经验:

一.测试越权一般得有俩号。

二.对userid。orderid等ID要敏感,一旦发现,需要多测一测。

三.某些厂商喜欢用纯数字的MD5作为用户的cookie,多注意发现。

四.多使用抓包工具,多分析数据包,多修改数据包。

五.多站在开发的角度去分析网站哪儿存在越权。

六.多看看别人的漏洞

由上面总结得出以下解决方案:

一、局部纵向越权解决方案:

把这种越权问题,作为整块测试任务来做。新建自动化测试Case,让每一个接口(尤其是涉及分级的接口)都要有多个不同级别的用户进行权限校验。根据断言和数据库一致性(必须,有时候接口返回的成功,并不一定是成功),来判断是否存在越权问题。

操作流程如下:

1、添加最高级别用户S的测试Case

2、添加普通用户A的自动化测试Case

3、添加低级别用户B的自动化测试Case

4、多用户统一访问仅开放给S级别用户接口。Case通过条件:A、B访问失败

5、S、A、B循环第四步

二、横向越权解决方案:

搭建一个横向越权mock数据系统。

1、输入为:接口url ,以及正常的json 串。

2、处理过程:对url和json串进行比对,找到两者相同字段。

3、系统修改一致字段对应value

4、输出一组或者几组测试数据

5、将mock出来的数据,进行自动化测试。

6、验证是否存在横向越权。

猜你喜欢

转载自blog.csdn.net/baidu_34750904/article/details/78929086