软件测试

API安全测试规范

2021-06-25  本文已影响0人  dandh

1 失效的对象级授权

1.1 概述

失效的对象级别授权指未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据(直接的对象引用或限制的URL)。例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

1.2 测试用例

2 失效的用户身份认证

2.1 概述

用户身份认证过程中出现的安全问题,如弱口令、明文存储、弱加密、密码爆破、GET方式传输令牌和密码、认证绕过等。

2.2 测试用例

3 过度的数据暴露

3.1 概述

API接口被调用时返回了大量数据,很多数据可能都是不必要的,应将用户看到的内容范围限制为必需内容。

3.2 测试用例

4 资源缺乏和频率限制

4.1 概述

API接口未对客户端/用户可以请求的资源大小或数量施加任何限制。这不仅会影响API服务器的性能,从而导致拒绝服务(DoS),而且还为诸如暴力破解之类的身份验证漏洞敞开了大门。

4.2 测试用例

5 失效的功能级授权

5.1 概述

攻击者利用漏洞将合法的API调用发送 给他们不应访问的API 端点。这些端点可能会暴露给匿名用户或常规的非特权用户。由于API更加结构化,并且更易于预测访问API的方式,因此更容易发现API中的这些缺陷(如,将HTTP方法从GET替换为PUT,或将URL中的 “用户”字符串更改为“管理员”)。

5.2 测试用例

6 批量分配

6.1 概述

后端应用对象可能包含许多属性,其中一些属性可以由客户端直接更新(如,user.firstname或user.address),而某些属性则不应该更新(如,user.isvip标志)。

6.2 测试用例

攻击者构造报文,重放第一个请求:

PUT /api/v1/users/me
{"user_name":"attacker","age":60,"credit_balance":99999}

攻击者无需支付即可篡改自己的信用值。

7 安全配置错误

7.1 概述

安全配置错误可以发生在一个应用程序堆栈的任何层面,包括平台、Web服务器、应用服务器、数据库、框架和自定义代码。

7.2 测试用例

8 注入

8.1 概述

服务端未对客户端提供的数据进行验证、过滤或净化,数据直接使用或者拼接到SQL/NoSQL/LDAP查询语句、 OS命令、XML解释器和ORM(对象关系映射器)/ODM(对象文档映射器)中,产生注入类攻击。

8.2 测试用例

9 资产管理不当

9.1 概述

资产管理存在问题,如暴露测试接口地址、未下线旧版本接口。

9.2 测试用例

本文由博客一文多发平台 OpenWrite 发布!

上一篇 下一篇

猜你喜欢

热点阅读