Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
restler-fuzzer — RESTler 是第一个有状态的 REST API 模糊测试工具,用于通过 REST API 自动测试云服务,并发现这些服务中的安全与可靠性缺陷。 | Kitploit
工具/GitHubGitHub/microsoft/restler-fuzzer
漏洞扫描器API安全测试Web安全模糊测试云安全
GitHubmicrosoft/restler-fuzzer

restler-fuzzer

RESTler 是第一个有状态的 REST API 模糊测试工具,用于通过 REST API 自动测试云服务,并发现这些服务中的安全与可靠性缺陷。

查看仓库
2.9k33156个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

RESTler

什么是 RESTler?

RESTler 是首个有状态的 REST API 模糊测试工具,用于通过 REST API 自动测试云服务,并发现这些服务中的安全性和可靠性错误。对于具有 OpenAPI(原名 Swagger)规范的云服务,RESTler 分析其完整规范,然后生成并执行通过 REST API 对服务进行测试的测试用例。

RESTler 智能地从 OpenAPI 定义中推断出请求类型之间的生产者-消费者依赖关系。在测试过程中,它会检查特定类别的错误,并根据先前的服务响应动态学习服务的行为方式。这种智能使 RESTler 能够探索只有通过特定请求序列才能到达的更深入服务状态,并发现更多错误。

RESTler 在以下同行评审的研究论文中有描述:

  1. RESTler: Stateful REST API Fuzzing (ICSE'2019)
  2. Checking Security Properties of Cloud Service REST APIs (ICST'2020)
  3. Differential Regression Testing for REST APIs​ (ISSTA'2020)
  4. Intelligent REST API Data Fuzzing​​ (FSE'2020)

如果您在研究中使用 RESTler,请引用(默认的)ICSE'2019 论文(BibTeX)。

RESTler 包含多种测试生成策略。为了获得关于(i)效率(即 RESTler 能多快发现崩溃)和(ii)有效性(即在给定时间范围内 RESTler 能发现多少崩溃)的全面比较视图,我们建议对所有记录的 fuzzing_mode(s) 进行比较,因为每种模式在状态空间探索的广度与深度之间提供了不同的权衡。我们还建议在进行任何模糊测试之前先运行 test 模式,如下所述,以发现并修复设置问题(例如,在模糊测试之前向字典添加必需的先决条件参数值)。

RESTler 创建于微软研究院,目前仍在积极开发中。

有关概述和入门演示,请参阅 Webinar - Fuzzing to Improve the Security and Reliability of Cloud Services。

RESTler 架构

构建状态

构建状态

设置 RESTler

RESTler 设计在运行 Windows 或 Linux 的 64 位机器上运行。实验性支持 macOS。

构建说明

Docker

在此仓库的根目录中,运行

root@kitploit:~
docker build -t restler .

生成的 Docker 容器将在目录 /RESTler/restler 中提供 RESTler,主二进制文件为 Restler。

然后,您可以使用此 Docker 镜像作为基础,添加被测应用程序,以便在隔离的 Docker 容器中执行模糊测试。

本机构建

先决条件:安装 Python 3.12.8 和 .NET 8.0,适用于您的操作系统。

创建一个希望放置 RESTler 二进制文件的目录:

mkdir restler_bin

切换到仓库根目录,运行以下 Python 脚本:

python ./build-restler.py --dest_dir <上面 restler_bin 的完整路径>

注意:如果在构建时遇到 nuget 错误 NU1403,一种快速解决方法是使用以下命令清除缓存:

dotnet nuget locals all --clear

使用 RESTler

RESTler 按顺序运行在 4 种主要模式下:

  1. 编译: 根据 OpenAPI JSON 或 YAML 定义(以及可选示例),生成 RESTler 语法。参见 编译。
  2. 测试: 快速执行已编译 RESTler 语法中的所有端点+方法,以调试测试设置并计算 OpenAPI 定义中哪些部分被覆盖。此模式也称为冒烟测试。参见 测试。要使用自定义测试引擎设置,请参见 测试引擎设置。
  3. Fuzz-lean: 使用一组默认检查器执行已编译 RESTler 语法中的每个端点+方法一次,以查看是否能快速发现错误。参见 模糊测试。
  4. Fuzz: 漏洞狩猎 - 以智能广度优先搜索模式(更深搜索模式)探索 RESTler 模糊测试语法,以发现更多错误。警告: 这种类型的模糊测试更为激进,如果被测服务实现不佳,可能会导致服务中断(例如,模糊测试可能导致资源泄漏、性能下降、后端损坏等)。参见 模糊测试。

快速入门

有关带有简单示例的快速介绍,请参阅此教程。

要快速在您的 API 上试用 RESTler,请参见 快速入门。

RESTler 发现的错误

目前有两个类别的错误由 RESTler 发现。

  • 错误代码: 当前,只要收到状态码为 500(“内部服务器错误”)的响应,就会报告一个错误。
  • 检查器: 每个检查器尝试通过在执行模糊测试期间的某些点执行针对性的附加请求或请求序列来触发特定错误,具体取决于上下文。一些检查器尝试查找额外的 500 错误,而其他检查器则尝试查找特定的逻辑错误,例如资源泄漏或层次结构违规。有关检查器的完整描述,请参见 检查器。

当发现错误时,RESTler 会报告已分类到错误桶中的错误,并提供可用于重现错误的重放日志(参见 重放)。

高级主题

有关有效使用 RESTler 的技巧,请参见 最佳实践 和 提高 API 覆盖率。

另请参阅这些常见问题解答。

如果您有兴趣在 CI/CD 管道中大规模使用 RESTler,请查看 REST API Fuzz Testing 自托管服务。

问题

如果您有请求/建议/问题,请提交一个 issue。 参见 Contributing.md 获取说明。

贡献

本项目欢迎贡献和建议。大多数贡献要求您同意一份贡献者许可协议(CLA),声明您有权并且确实授予我们使用您贡献的权利。详情请访问 https://cla.microsoft.com。

当您提交拉取请求时,CLA 机器人会自动判断您是否需要提供 CLA,并适当装饰 PR(例如标签、评论)。只需按照机器人提供的说明操作。您只需在所有使用我们 CLA 的仓库中执行一次此操作。

本项目采用了 Microsoft Open Source Code of Conduct。 有关更多信息,请参阅 行为准则常见问题解答 或联系 [email protected] 提出任何其他问题或评论。

有关更多信息,请参见 Contributing.md。

商标

本项目可能包含项目、产品或服务的商标或徽标。授权使用微软商标或徽标必须遵守并遵循微软的商标和品牌指南。在本项目修改版本中使用微软商标或徽标不得引起混淆或暗示微软赞助。任何第三方商标或徽标的使用均须遵守该第三方的政策。

数据收集

本软件可能会收集有关您和您使用本软件的信息,并将其发送给微软。微软可能使用此信息来提供服务并改进我们的产品和服务。您可以根据仓库中的说明关闭遥测。本软件中的某些功能还可能使您和微软能够从您的应用程序的用户那里收集数据。如果您使用这些功能,您必须遵守适用法律,包括向您的应用程序用户提供适当的通知以及微软隐私声明的副本。我们的隐私声明位于 https://go.microsoft.com/fwlink/?LinkID=824704。您可以在帮助文档和隐私声明中了解有关数据收集和使用的更多信息。您对本软件的使用即表示您同意这些做法。

有关更多信息,请参见 Telemetry.md。

报告安全漏洞

安全问题和错误应通过电子邮件私下报告给微软安全响应中心 (MSRC),邮箱地址为 [email protected]。您应该在 24 小时内收到回复。如果由于某些原因未收到回复,请通过电子邮件跟进以确保我们收到了您的原始消息。更多信息,包括 MSRC PGP 密钥,可以在 安全 TechCenter 中找到。

有关更多详细信息,请参见 Security.md。

隐私与 Cookies

https://go.microsoft.com/fwlink/?LinkId=521839

下载工具