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

访客3年前黑客文章565

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 https://www.freebuf.com/articles/web/build-restler.py --dest_dir <full path to restler_bin above>

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

dotnet nuget locals all --clear

RESTler使用

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

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

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

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

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?

相关文章

如何理解党的全会我们结婚了李泰民文件中这个“第一次”

  【100秒漫谈斯理】如何理解党的全会文件中这个“第一次”   党的十九届五中全会审议通过的《中共中央关于制定国民经济和社会发展第十四个五年规划和二〇三五年远景目标的建议》,在改善人民生活品质部分...

查酒店住宿记录怎么查(酒店同住记录能查吗)

你如果能记得很清万网以前的管理页面,你现在在进入万网的管理页面看看,他们之间发现了一点小小的变化,就是这点小小的变化,确给用户带来了很大的方便。以前转出域名要邮寄个人材料,万网才给你发转移密码的,现在...

复制手机黑客(黑客软件监控别人手机)-黑客攻击个人手机有什么后果

复制手机黑客(黑客软件监控别人手机)-黑客攻击个人手机有什么后果

复制手机黑客(黑客软件监控别人手机)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑客业...

网上找黑客查别人的资料靠谱吗(通过微信账号

最近想学习一下文件包含漏洞,在无意中看见了关于文件包含的漏洞公告。大致的意思是这样的,PhpwCMS 1.2.6系统的下列文件存在文件包含漏洞:include/inc_ext/spaw/dialogs...

跨行转账多少时间到账(ATM跨行转账多久到账)

说到网上汇款,大家都很了解。它是金融机构出示的最重要的基础服务项目之一,也是大家大部分人最常见的作用之一。殊不知,在平时实际操作中都会出現一些难题和顾虑。 由于工作中缘故,大家一直来找我聊资询一些经...

完成冷启动以后,应该做些什么呢?

完成冷启动以后,应该做些什么呢?

在拉进第一批种子用户后,那整个项目团队的OKR就进入到了第二阶段。技能团队认真晋升产物不变性,以用户满足度作为月度指标。产物及运营则以晋升新增转化率及留存率作为月度指标,并开始着手陈设第二阶段增长打算...