聊聊模糊测试,以及几种模糊测试工具的介绍!

这篇具有很好参考价值的文章主要介绍了聊聊模糊测试,以及几种模糊测试工具的介绍!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下为作者观点:

在当今的数字环境中,漏洞成为攻击者利用系统漏洞的通道,对网络安全构成重大威胁。这些漏洞可能存在于硬件、软件、协议实施或系统安全策略中,允许未经授权的访问并破坏系统的完整性。

根据 "常见漏洞与暴露"(Common Vulnerabilities and Exposures,CVE)的跟踪,漏洞披露的激增令人震惊......
聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

就连开放源代码软件也未能幸免,据Synopsys的一份报告显示,在1481个受检代码库中,84%的代码库至少包含一个开放源代码漏洞。

更令人担忧的是网络犯罪的指数式增长。根据网络安全风险投资公司(Cybersecurity Ventures)的预测,2023年全球网络犯罪成本将达到8万亿美元,到 2025年估计将飙升至10.5万亿美元。

如果以一个国家来衡量,网络犯罪将成为仅次于美国和中国的世界第三大经济体。

这些数字听起来确实很吓人,如今,无论规模大小,没有一家公司能幸免于威胁。每个组织,无论规模大小,都面临着潜在的漏洞风险,危及运营、品牌声誉和收入渠道。

作为一种预防措施,漏洞评估似乎是软件安全不可或缺的组成部分。然而,手动识别漏洞是一个艰巨而耗时的过程,尤其是面对日益复杂的软件。此外,在某些情况下,由于无法直接访问软件源代码,人工审查几乎是不可能的。

解决方案在于能够自动检测漏洞的智能工具,模糊处理就是这样一种方法,它是一种高效、有效的漏洞发现方法。

什么是模糊测试?
模糊测试(又称应用程序模糊测试),可帮助团队发现软件应用程序源代码中的安全漏洞和错误。

有别于静态应用安全测试(SAST)等传统软件测试方法,模糊测试采用了一种独特的方法。

它基本上是用随机输入对代码进行轰炸,目的是引发崩溃,从而揭示隐藏的缺陷,否则这些缺陷可能会一直未被发现。这些代码缺陷(包括与业务逻辑相关的问题)标志着容易受到安全威胁的潜在高风险区域。

当出现故障或漏洞时,fuzzer(一种专门用于找出这些崩溃潜在原因的工具)就会介入,针对源代码中的特定弱点进行攻击。

聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

模糊器(fuzzer)擅长于暴露可被 SQL 注入和跨站脚本等攻击利用的漏洞,这些攻击是恶意行为者用来破坏安全、窃取信息或破坏系统的手段。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:822269834【暗号:csdn999】

 聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

什么是简单实用的用例?

假设用户需要在网络表单上输入电子邮件地址。

在传统测试中,通常会验证输入的正确性,确保符合预期格式(例如,包含"@"和域)。

下面是一些经典测试案例:

1.输入一个有效的电子邮件地址(如 "user@example.com")。测试通过,因为它符合预期格式。

2.输入无效的电子邮件地址(如 "user@")。由于格式出乎意料,测试失败。

在某些情况下,甚至可以添加一个额外的测试用例来覆盖空状态,仅此而已。

现在,我们来引入模糊测试。

模糊测试包括注入各种意外的、通常是恶意的输入,以识别漏洞或意外行为。

在这种情况下,模糊测试可能包括以下输入:

很长的电子邮件地址

带有特殊字符的电子邮件地址

域名不完整的电子邮件地址(如 "user@")

带有非标准字符的电子邮件地址(如 "user@ex@mple.com")

非标准编码或编码组合(如URL编码、HTML实体)

模糊测试的目标是确定系统如何处理这些意外输入。模糊测试将揭示传统测试可能忽略的潜在问题,例如:

1.系统无法处理过长的输入,导致潜在的缓冲区溢出。

2.因特殊字符导致注入攻击而产生的安全漏洞。

3.遇到不完整或畸形的电子邮件地址时,系统崩溃或出现意外行为。

4.可能导致跨站脚本 (XSS) 或其他安全漏洞的编码相关漏洞。

在这个例子中,模糊测试有助于发现传统测试可能忽略的漏洞和薄弱环节,最终提高系统的整体稳健性和安全性。在处理现实世界中可能出现的意外输入时,模糊测试尤为重要。

如果你觉得这个例子很有用,那么想象一下,把接受不同输入数据类型的多个输入字段的测试用例结合起来...... 

模糊器如何生成输入数据?

模糊器(fuzzer)旨在测试不同数据类型的各种攻击组合,包括:

数字:包括有符号和无符号整数、浮点数和其他数字数据类型。

字符:模糊测试涉及操作字符数据,如URL、命令行输入和元数据(如用户输入文本,包括ID3标签)。

纯二进制序列:模糊器也可对原始二进制数据进行操作。

通常采用的模糊处理方法是为每种数据类型定义一组 "已知危险值 "或模糊向量,然后注入或组合这些值。例如:

对于整数,可能需要使用零、潜在的负值或极大的数字。

在处理字符数据时,模糊器可能会引入转义或可解释字符和指令。例如,在 SQL 请求中,模糊测试可能涉及测试引号、命令和其他敏感字符。

在二进制数据领域,模糊器经常使用随机二进制序列来发现漏洞和弱点。

模糊测试有哪些主要类型?

模糊测试包括几种主要类型,分别针对被测软件的不同方面,即应用程序、协议和文件格式模糊测试。

应用程序模糊测试侧重于被测系统的输入和输出。对于桌面应用程序,这包括测试各个方面,例如

用户界面(UI)元素,检查按钮序列和文本输入。

命令行选项,确保正确处理不同的输入参数。

导入和导出功能,特别是文件格式处理(见下文的文件格式模糊测试)。对于网络应用程序,攻击向量可扩展到 URL、表单、用户生成的内容和远程过程调用 (RPC) 请求。

另一方面,协议模糊涉及向被测应用发送篡改或伪造的数据包。在某些情况下,模糊器可能充当代理,在重放请求之前实时更改请求。

这种方法旨在发现网络协议及其实现中的漏洞。

最后,文件格式模糊法用于评估应用程序如何处理不同的文件格式。它生成多个畸形样本并依次打开。当应用程序崩溃时,调试信息会被保留下来,以供进一步分析。

这种文件格式模糊测试主要针对两层:

解析器层(容器层):这将评估文件格式约束、结构、约定、字段大小、标志以及与格式本身相关的其他方面。

编解码器/应用层:这将深入到较低层次的攻击,探测程序更深层次的内部结构。

这种模糊类型并不常见,但近来逐渐受到重视。这类工具和实例包括:

通用文件格式模糊器,如 Ilja van Sprundel 的 "mangle.c",可修改头数据。

Zzuf,可用作模糊文件生成器。

Hachoir 等工具,可用作开发文件格式模糊器的通用解析器。

这些类型的模糊测试在识别漏洞和加强软件系统安全性方面发挥着至关重要的作用。

模糊测试工具有哪些?

一些免费的开源模糊测试工具,为识别和缓解软件应用程序中的漏洞提供了重要资源:

1.Google OSS-Fuzz

Google的OSS-Fuzz项目是一项开源计划,源于他们在开发Chrome OS和 Chrome浏览器时对模糊测试的广泛使用。

它利用各种模糊引擎,包括AFL++、libFuzzer和Honggfuzz。

兼容C、C++、Rust、Go、Python、Java/JVM等语言,还可能兼容其他语言。

支持x86-64和i386版本,拥有强大的社区支持。
聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

2.FuzzDB

FuzzDB是一个广泛的攻击有效载荷和注入技术库,旨在暴露应用程序中的漏洞。

按平台类型、潜在问题、源暴露等进行分类。

非常适合与可编程模糊引擎一起使用,结合已知和未知的攻击模式。

3.Ffuf(Fuzz Faster U Fool)

Ffuf 是一个用Go编写的模糊引擎,是一个功能强大、基于命令行的工具。

它功能强大,基于命令行,适用于常见的模糊任务,如测试应用程序对未知 GET和POST请求的响应。

定期更新新功能;支持赞助模式,可立即获得更新。

聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

4.Google ClusterFuzz

谷歌的ClusterFuzz用于发现Chrome浏览器中的漏洞,它与OSS-Fuzz项目集成,可以对任何程序或应用程序进行模糊测试。

值得注意的是它的扩展能力,甚至可以运行在10万台虚拟机上进行大规模测试。

聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

5.go-fuzz

备受推崇的模糊平台,用于测试Go语言包,尤其是解析复杂输入的语言包。

对于加强解析来自潜在恶意源(如基于网络的应用程序)的输入的系统而言,该平台非常有价值。

聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

6.Jazzer.js

Jazzer.js是Code Intelligence开发的一款专为Node.js平台定制的覆盖引导型进程内模糊器。

它以libFuzzer为基础,为JavaScript生态系统引入了仪器驱动的突变功能。

它是通过系统识别漏洞来增强Node.js应用程序安全性的理想工具。

模糊测试的优点和局限性

使用Fuzz测试有以下几个优点:

自动化:模糊测试可配置为自动运行测试,只需最少的人工干预,从而节省时间和资源。

系统化方法:模糊测试的随机输入消除了人为偏差,发现了人工测试人员可能遗漏的漏洞。

适用于封闭系统:在封闭系统中,由于内部工作原理模糊不清,模糊测试往往是唯一可行的选择。例如,在人工智能和深度学习等输入输出关系复杂且不明确的应用中,模糊测试是必不可少的。

但是,模糊测试也存在一些局限性:

遗漏某些攻击类型:模糊测试无法有效识别不会导致程序崩溃的安全威胁,如间谍软件、病毒、蠕虫、木马和键盘记录程序。

设置复杂:管理和监控模糊测试需要专业的编码知识和有效的错误处理。

范围有限:模糊测试仅提供错误检测,但不能对安全性、质量和有效性进行全面评估。在软件开发过程中,有必要采用功能测试和 beta 测试等其他测试方法。

结论

软件漏洞对网络安全构成了巨大威胁,CVE 报告和开放源代码漏洞呈指数级增长。网络犯罪的激增进一步加剧了采取强有力安全措施的紧迫性。

漏洞评估至关重要,但人工识别具有挑战性,尤其是在复杂的软件中。模糊测试作为一种自动化、高效的方法,提供了一种令人信服的解决方案。它善于发现隐藏的缺陷并增强安全性,包括各种类型,如应用程序、协议和文件格式模糊测试,从而增强软件的安全性。

虽然模糊测试可能会漏掉某些攻击类型,需要编码方面的专业知识来进行设置和监控,而且只能对软件安全性进行部分评估,但总体而言,模糊测试对于在当今不断变化的威胁环境中确保软件应用程序的安全和降低风险至关重要。它与其他测试方法相辅相成,形成了现代软件安全的整体方法。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

聊聊模糊测试,以及几种模糊测试工具的介绍!,技术分享,自动化测试,软件测试,测试工具,软件测试,功能测试

 文章来源地址https://www.toymoban.com/news/detail-756007.html

到了这里,关于聊聊模糊测试,以及几种模糊测试工具的介绍!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 压力测试与测试工具jmeter的介绍

    目录 一、性能指标 二、jmeter (一)JMeter 安装 (二)JMeter 压测示例 1、添加线程组 2、添加 HTTP 请求  3、添加监听器 4、启动压测查看分析结果 (三)JMeter Address Already in use 错误解决   压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测

    2024年02月14日
    浏览(46)
  • 接口测试的流程和步骤,主要测试哪些方面,测试工具,测试用例,以及测试框架

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月25日
    浏览(43)
  • 测试工具:jmeter的下载以及使用

    测试不仅要了解项目整体流程,还需要会使用各种测试工具,比如:jmeter压力测试工具。 1.下载地址 2.下载完直接解压,配置环境 (1)此电脑-右键属性-高级系统设置-环境变量- 系统变量-中新建JEMETER_HOME,值为你的下载路径 (2) CLASSPATH 中配置下面这句话(没有新建classpat

    2024年02月11日
    浏览(48)
  • pktgen网络测试工具介绍

    pktgen是一款网络测试工具,可以用于压力测试、性能测试、负载均衡测试等方面。它使用Lua脚本来生成和发送数据包,并且支持多线程处理。 pktgen可以在Linux系统上运行,支持多种协议和数据包类型,如TCP、UDP、ICMP、ARP等。用户可以通过命令行或者图形界面来控制pktgen的运行

    2024年02月19日
    浏览(31)
  • Cantata 测试工具基本使用介绍

    写本文是因为没有带办公电脑,在个人电脑上先写,然后复制到公司内部网络。需要软件自行联系国内代理商,勿扰 概述 Cantata QA 工具是德国斯图加特的一家名为QA System技术股份有限公司的产品,国内名称为北京旋极信息技术股份有限公司,在北京上海深圳均有办公点。 工

    2024年02月12日
    浏览(40)
  • 数据接口测试工具 Postman 介绍!

    此文介绍好用的数据接口测试工具 Postman,能帮助您方便、快速、统一地管理项目中使用以及测试的数据接口。 1. Postman 简介 Postman 一款非常流行的 API 调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如 Jmeter、soapUI 等。 不过,对于开发过程中

    2024年02月04日
    浏览(54)
  • 前端测试指南:Vue3 测试工具介绍与使用

    1.1 前端测试的重要性 在现代前端开发中,测试已经成为了必不可少的一环。测试可以保证代码的质量、可维护性和可靠性,防止代码的潜在错误和漏洞。同时,测试可以让开发者更加自信地提交代码和合并代码,以及更快地解决问题。因此,测试已经成为了前端开发中不可

    2024年02月10日
    浏览(49)
  • 性能测试工具locust压测介绍

    官方文档:https://docs.locust.io/en/stable/index.html 1、初识locust         Locust 完全基于Python 编程语言,采用python 编写压测脚本,且所有请求完全基于requests库。除了 HTTP/HTTPS 协议,Locust 也可以测试其它协议的系统,只需要采用Python调用对应的库进行请求描述即可。locust是一个

    2024年02月07日
    浏览(67)
  • 1-Locust性能测试工具介绍与安装

    locust是一个开源的压测工具,其官网地址是Locust - A modern load testing framework,通过编写Python代码,可以轻松实现百万级的并发,相对于我们熟悉的Jmeter来说,其对压测机的要求更低,而且使用locust和Python协程可以在一个User中实现多个api同时请求,更真实地模拟用户在前端页面

    2024年02月15日
    浏览(41)
  • speccpu测试工具介绍和使用说明

    目录 1. speccpu 测试工具 1.1. speccpu 简介 2. speccpu使用说明 2.1. speccpu安装运行 2.2. speccpu测试参数 2.3. 常用测试参数说明 2.4. 测试用例说明 3. speccpu结果分析 3.1. speccpu测试结果   speccpu 测试工具 speccpu 简介 CINT2006包括C编译程序、量子计算机仿真、下象棋程序等,CFP2006包括有限元

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包