安全测试基础学习笔记

一、命令注入

1、命令注入攻击:由于应用程序对用户提交的数据过滤不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等。测试人员可以通过接口发包工具将构造的特殊命令注入数据作为参数输入,经验证来判断是否存在命令注入漏洞。

二、接口未授权访问

1、接口未授权访问:接口缺少认证校验,不需要知道访问凭证(如账号口令等)的情况下可以正常获取接口数据或使用接口功能。测试人员可以使用发包工具在正常访问接口的请求中去掉认证凭证,继续访问接口,根据缺少认证凭证的请求能否正常响应来判断是否存在漏洞。
(1)常见认证凭证字段:Cookie、access_key、Authorization、Auth、Token。
(2)防范:摘要认证、Session认证、AK/SK认证、JWTToken认证、单点登录。
注:cookie是由Web服务器保存在用户浏览器上的小文件(key-value格式),包含用户相关的信息;session是依赖Cookie实现的,是服务器端对象;Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌。

三、越权测试

1、越权漏洞:服务器端对访问者只进行了身份认证而忽略了用户操作权限判断,导致访问了无权访问的接口或操作了无权操作的数据,根据攻击维度可以划分为水平越权、垂直越权。(URL泄露、直接对象引用、多阶段功能、静态文件、平台配置错误等都会导致越权。)
(1)水平越权:攻击者能访问和他拥有相同权限的用户的资源,如修改用户ID为他人的能操作其他同等权限账号的数据。如A、B都是普通用户,但A能够使用B这个用户的权限就是水平越权。测试人员可以在调用接口处修改参数中的资源ID,在登录凭据为用户A时获取用户B的资源,若能成功则认为存在水平越权。
(2)垂直越权:攻击者能使用低权限的账户去访问高权限账户的功能,如普通用户请求管理员才有的接口、操作管理员的功能和数据。如普通用户A可以使用管理员的权限-新增用户。测试人员可以先登录普通用户,使用普通用户的登录凭证调用管理员才有权限调用的接口,若能成功则认为存在垂直越权。

四、认证绕过测试

1、认证绕过:应用程序在鉴权的过程中存在缺陷,导致不需要正确口令或凭证就可以成功登录。如在请求中将鉴权字段修改为空、NULL、-1等值,或者仅包含用户名、缺少鉴权字段都有可能绕过认证。在测试此类问题时可以使用发包工具直接访问认证相关接口。
(1)常见的登录认证:账号密码认证、digest认证、PKI认证、短信/邮件验证认证等。
补充:digest认证:HTTP采用可阅读的文本格式进行数据通讯,内容易被解读,出于安全考虑,HTTP规范定义了几种认证方式对访问者身份进行鉴权,最常见的认证方式之一是digest认证。digest 认证是使用质询响应的方式,不会直接发送明文密码。质询响应方式是指:一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的质询码计算生成响应码,最后将响应码返回给对方进行认证的方式。digest认证支持的加密算法有SHA256、SHA512/256、MD5。(这几种算法都是由哈希函数来生成散列值,其加密过程为单向计算,请求方无法反算出密码明文。)

五、任意文件上传测试

1、任意文件上传漏洞:利用服务器的上传接口上传恶意文件进而获取服务器权限,如果服务端未对用户上传的文件进行严格验证和过滤就会产生该问题。测试人员可以使用发包工具填入文件上传接口的各项参数,将上传文件为无意义文件类型(如1.jpg.123)并检查是否上传成功,若成功且返回文件名后缀为创建的无意义后缀类型(如.123)则存在漏洞。

你可能感兴趣的:(测试学习,安全性测试)