如何使用RESTler对云服务中的REST API进行模糊测试

发布时间:2021-12-23 10:17:13 作者:柒染
来源:亿速云 阅读:158

如何使用RESTler对云服务中的REST API进行模糊测试,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

RESTler

RESTler是目前第一款有状态的针对REST API的模糊测试工具,该工具可以通过云服务的REST API来对目标云服务进行自动化模糊测试,并查找目标服务中可能存在的安全漏洞以及其他威胁攻击面。如果目标云服务带有OpenAPI/Swagger规范,那么RESTler则会分析整个服务规范,然后通过其REST API来生成并执行完整的服务测试。

RESTler从Swagger规范智能地推断请求类型之间的生产者-消费者依赖关系。在测试期间,它会检查特定类型的漏洞,并从先前的服务响应中动态地解析服务的行为。这种智能化的方式使RESTler能够探索只有通过特定的请求序列才能达到的更深层次的服务状态,并找到更多的安全漏洞。

RESTler由微软研究团队负责研发,当前该项目仍处于活跃开发状态。

如何使用RESTler对云服务中的REST API进行模糊测试

RESTler配置

RESTler目前仅支持在64位的Windows和Linux操作系统上运行。

构建指引

工具要求:安装Python 3.8.2.NET Core SDK 3.1

接下来,创建一个用于存放RESTler源代码的目录:

mkdir restler_bin

切换到项目根目录下,然后运行下列Python脚本:

python ./build-restler.py --dest_dir <full path to restler_bin above>

注意:如果你在源码构建过程中收到了Nuget 错误 NU1403的话,请尝试使用下列命令清理缓存:

dotnet nuget locals all --clear

RESTler使用

RESTler能够以下列四种模式运行:

Compile:从一个Swagger JSON或YAML规范生成一个RESTler语法。

C:\RESTler\restler\Restler.exe compile --api_spec C:\restler-test\swagger.json

Test:在已编译的RESTler语法中快速执行所有的endpoints+methods以调试测试设置,并计算Swagger规范的哪些部分被涵盖。这种模式也称为smoketest。

C:\RESTler\restler\restler.exe test --grammar_file C:\restler-test\Compile\grammar.py --dictionary_file C:\restler-test\Compile\dict.json --settings C:\restler-test\Compile\engine_settings.json --no_ssl

Fuzz-lean:在编译的RESTler语法中,每个endpoints+methods都执行一次,并使用一组默认的checker来查看是否可以快速找到安全漏洞。

C:\RESTler\restler\restler.exe fuzz-lean --grammar_file C:\restler-test\Compile\grammar.py --dictionary_file C:\restler-test\Compile\dict.json --settings C:\restler-test\Compile\engine_settings.json --no_ssl

Fuzz:查找漏洞,利用智能广度优先搜索模式(更深入的搜索模式)的RESTler模糊语法查找更多的安全漏洞。

C:\RESTler\restler\restler.exe fuzz --grammar_file C:\restler-test\Compile\grammar.py --dictionary_file C:\restler-test\Compile\dict.json --settings C:\restler-test\Compile\engine_settings.json --no_ssl --time_budget 1

工具工作流程

如何使用RESTler对云服务中的REST API进行模糊测试

关于如何使用RESTler对云服务中的REST API进行模糊测试问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. rest api是什么
  2. Django REST framework

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rest api

上一篇:Redis中的布隆过滤器怎么实现

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》