揭开“安全测试”的神秘面纱

本贴最后更新于 1505 天前,其中的信息可能已经事过景迁

11月9号晚,柠檬班重磅推出了“安全测试 ”课程,很多学生非常感兴趣,当晚就报名了100+名学生,盛况无限。

这一方面说明柠檬班的课程真的非常优秀,另外也说明大家对知识和技术的渴求度还是非常热烈的。不过很多学生对安全测试其实没有太多的认知,甚至一些从事测试工作多年的”老测试“,说起安全测试依然一知半解。今天我们就来揭开安全测试的神秘面纱,跟大家聊聊一些场景的安全漏洞场景。

什么是漏洞?

首先,安全测试是我为了发现产品的漏洞而防范各种攻击或者安全隐患的,所以我们先要知道什么是漏洞。

漏洞是指系统或应用因为管理不合格,或者技术应用不严谨而存在弱点或缺陷。这点弱点或者缺陷会造成如下后果:

• 系统被攻击;

• 资料被窃取;

• 数据被篡改;

• 沦为跳板机;

漏洞的类型介绍

所以我们在工作中具体可见的漏洞类型有哪些呢?以及他们的原理和防范措施又有哪些呢?我们一一来列举并介绍一下。

1、注入类(SQL注入)

产生原理:

注入类漏洞最常见的就是SQL注入,它是通过将恶意的SQL查询或添加语句插入到应用的输入参数中,再在后台SQL服务器上解析执行进行的攻击。

检测方法:

  1. 检查POST请求体中的参数;
  2. 检查GET请求头URL中的参数;
  3. 检查Cookie值
  4. 检查http头部信息;

影响危害:

这种工具可以获取数据库中敏感信息,可以对数据库中信息进行非法操作或者篡改;同时还可以获取服务器权限,对服务器进行一些非法操作。

防御措施:

  1. 过滤用户输入的特殊字符;

敏感数据加密存储;

  1. 基于攻击特征的匹配过滤。系统会将攻击特征做成数据库,一旦匹配到这些攻击特征就会认定检测到SQL注

入。这种方式可以有效的过滤大部分SQL注入攻击,但是大大增加了程序的复杂度,同时可能影响到业务的

正常查询;

  1. 对用户输入的特殊字符进行转义。例如,常见的SQL注入语句中都含有“‘’”,通过转义将“‘’”转义

为“/”,SQL注入语句就会达不到攻击者预期的执行效果,从而实现对SQL注入进行防御;

  1. 数据类型进行严格定义,数据长度进行严格规定。比如查询数据库某条记录的id,定义它为整型,如果用户

传来的数据不满足条件,要对数据进行过滤。数据长度也应该做严格限制,可以防止较长的SQL注入语句;

  1. 严格限制网站访问数据库的权限;
  2. 其他防御措施。例如,避免网站显示SQL执行出错信息,防止攻击者使用基于错误的方式进行注入;每个数

据层编码统一,防止过滤模型被绕过等。

2、权限类(越权)

产生原理:

由于服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致修改相关参数就可以拥有了其他账户的增、删、查、改功能,从而导致越权漏洞。

检测方法:

  1. 可以通过定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。

影响危害:

越权漏洞的危害与影响主要是与对应业务的重要性相关,比如说某一页面服务器端响应中返回登录名、登录密码、手机号、身份证等敏感信息,如果存在平行越权,通过对用户ID的遍历,就可以查看所有用户的敏感信息,这种操作就很难被防火墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊字符,具有十足的隐秘性。

防御措施:

  1. 完善基础安全架构,完善用户权限体系。要知道哪些数据对应哪些用户,哪些数据不应该由哪些用户操作;
  2. 加强用户鉴权,服务端对请求的数据和当前用户身份做校验;
  3. 编写代码时,不要直接使用对象的实名或关键字;
  4. 对于可控参数进行严格的检查与过滤;

3、文件操作类(文件包含)

产生原理:

文件上传漏洞是指由于程序代码未对用户提交的文件进行严格的分析和检查,导致攻击者可以上传可执行的代码文件,从而获取 Web应用的控制权限(Getshell),导致文件泄露和恶意代码注入。

检测方法:

  1. 查看配置文件是否开启allow_url_include()和allow_url_fopen;
  2. 上传图片,getshell;
  3. 读取文件,读取php文件;
  4. 包含日志文件,获取webshell;

影响危害:

会造成信息泄漏;或者网站被包含的木马控制。

防御措施:

  1. 文件上传的目录设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服

务器本身也不会受到影响。

  1. 判断文件类型。在判断文件类型时,可以结合使用MIME Type、后缀检查等方式。在文件类型检查中,强烈推

荐白名单方式,黑名单的方式已经无数次被证明是不可靠的。

  1. 使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境

中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。

  1. 使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏

洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。

4、信息泄漏类

产生原理:

当系统配置存放不当,导致web系统备份,数据库备份,用户数据文件,暴露在web系统上,引发信息泄漏;

检测方法:

  1. 网站目录爬取;
  2. 第三方平台信息搜集;

影响危害:

  1. 账号、密码被非法使用;
  2. 网站文件或个人信息泄漏;
  3. 增大攻击威胁;

防御措施:

  1. 删除不必要的敏感文件;
  2. 敏感信息不要在网站源码里面进行注释;
  3. 敏感信息进行加密存储,不将敏感信息上传至互联网平台;

5、社工类(钓鱼)

产生原理:

攻击者利用恶意软件、病毒木马伪造为正常文件或者链接诱使用户点击从而导致用户等系统被攻击或者控制。

检测方法:

  1. 安装安全防护软件检测;
  2. 根据文件或链接人工判断;

影响危害:

  1. 通过钓鱼网站设下陷阱,大量收集用户个人隐私信息,贩卖个人信息或敲诈用户;
  2. 通过钓鱼网站收集、记录用户网上银行账号、密码,盗窃用户的网银资金;
  3. 假冒网上购物、在线支付网站、欺骗用户直接将钱打入攻击者账户;
  4. 假冒产品和广告宣传获取用户信任,骗取用户钱财;
  5. 通过社工结合钓鱼方式获取管理员账号、密码进而非法控制网站或服务器;

防御措施:

  1. 提高信息安全意识,不点击不明来源的网址链接或文件;
  2. 安装安全防护软件,定期进行安全检测;
  3. 妥善保管个人信息,勿将个人信息放至于公共互联网;

总结

安全测试是一个要求知识面比较广的测试岗位,所以要做好安全测试,需要了解一些生活中常见的安全漏洞场景以及对应的一些原理和实现措施。知其然知其所以然,才能更好的学习和执行安全测试。

1 操作
tricy 在 2020-11-10 20:13:58 更新了该帖
回帖
请输入回帖内容 ...