freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

如何使用RESTler对云服务中的REST API进行模糊测试
Alpha_h4ck 2021-01-21 21:56:39 339619

RESTler

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

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

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

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:【GitHub传送门

参考资料

https://patricegodefroid.github.io/public_psfiles/icse2019.pdf

https://patricegodefroid.github.io/public_psfiles/icst2020.pdf

https://patricegodefroid.github.io/public_psfiles/issta2020.pdf

https://patricegodefroid.github.io/public_psfiles/fse2020.pdf

https://github.com/microsoft/restler-fuzzer/blob/main/docs/user-guide/TutorialDemoServer.md

https://github.com/microsoft/restler-fuzzer/blob/main/docs/user-guide/QuickStart.md

# 模糊测试 # rest api # REST
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
数据安全建设指南
My Freebuf
Oh Freebuff My Freebuf
Great My Freebuf
Freebuf's Bread
展开更多
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1021 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录