测试人都在关注的安全测试?今天我们一起来揭开神秘面纱

不过很多学生对安全测试其实没有太多的认知,甚至一些从事测试工作多年的”老测试“,说起安全测试依然一知半解。

今天我们就来揭开安全测试的神秘面纱,跟大家聊聊一些场景的安全漏洞场景。

什么是漏洞?

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

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

  1. 系统被攻击;
  2. 资料被窃取;
  3. 数据被篡改;
  4. 沦为跳板机;

漏洞的类型介绍

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

注入类(SQL 注入)

产生原理:

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

检测方法:

  • 检查 POST 请求体中的参数;
  • 检查 GET 请求头 URL 中的参数;
  • 检查 Cookie 值
  • 检查 http 头部信息;
  • 影响危害:

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

    防御措施:

  • 过滤用户输入的特殊字符;
  • 敏感数据加密存储;
  • 基于攻击特征的匹配过滤。系统会将攻击特征做成数据库,一旦匹配到这些攻击特征就会认定检测到 SQL 注入。这种方式可以有效地过滤大部分 SQL 注入攻击,但是大大增加了程序的复杂度,同时可能影响到业务的
  • 正常查询;对用户输入的特殊字符进行转义。例如,常见的 SQL 注入语句中都含有“‘’”,通过转义将“‘’”转义为“/”,SQL 注入语句就会达不到攻击者预期的执行效果,从而实现对 SQL 注入进行防御;
  • 数据类型进行严格定义,数据长度进行严格规定。比如查询数据库某条记录的 id,定义它为整型,如果用户传来的数据不满足条件,要对数据进行过滤。数据长度也应该做严格限制,可以防止较长的 SQL 注入语句;
  • 严格限制 站访问数据库的权限;
  • 其他防御措施。例如,避免 站显示 SQL 执行出错信息,防止攻击者使用基于错误的方式进行注入;每个数据层编码统一,防止过滤模型被绕过等。
  • 权限类(越权)

    产生原理:

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

    检测方法:

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

    影响危害:

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

    防御措施:

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

    产生原理:

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

    检测方法:

  • 查看配置文件是否开启 allow_url_include()和allow_url_fopen;
  • 上传图片,getshell;
  • 读取文件,读取 PHP 文件;
  • 包含日志文件,获取 webshell。
  • 影响危害:

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

    防御措施:

  • 判断文件类型。在判断文件类型时,可以结合使用 MIME Type、后缀检查等方式。在文件类型检查中,强烈推荐白名单方式,黑名单的方式已经无数次被证明是不可靠的。
  • 使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。
  • 使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。
  • 信息泄漏类

    产生原理:

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

    检测方法:

  • 站目录爬取;
  • 第三方平台信息搜集;
  • 影响危害:

  • 账 、密码被非法使用;
  • 站文件或个人信息泄漏;
  • 增大攻击威胁;
  • 防御措施:

  • 删除不必要的敏感文件;
  • 敏感信息不要在 站源码里面进行注释;
  • 敏感信息进行加密存储,不将敏感信息上传至互联 平台;
  • 工类(钓鱼)

    产生原理:

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

    检测方法:

    安装安全防护软件检测;

    根据文件或链接人工判断。

    影响危害:

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

  • 安装安全防护软件,定期进行安全检测;
  • 妥善保管个人信息,勿将个人信息放置于公共互联 。
  • 总结:

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

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2020年10月20日
    下一篇 2020年10月20日

    相关推荐