TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Show HN: OpenAPI fuzzer – fuzzing APIs based on OpenAPI specification

76 点作者 matusf超过 3 年前

7 条评论

matusf超过 3 年前
Hi HN, I&#x27;d like to share with you a fuzzer I&#x27;ve been working on. It is a black-box, smart, generation-based fuzzer, that fuzzes APIs based on OpenAPI specification. It all started as a bachelor thesis[0], when I wanted to do something security-related and learn Rust along the way. My colleague @viralpoetry tutored me and so far, we&#x27;ve been able to find bugs in software such as k8s, gitea, and vault[1].<p>As for the choice of language, Rust proved to be a good decision, even though, one would think that dynamic languages are better suited for fuzzing (at least that was the choice for API fuzzers that I looked into). Thanks to Rust&#x27;s type system, I was able to deserialize the OpenAPI specification to structs and traverse them when creating a fuzzing payload in a type-safe way. Other fuzzers load the specification to a dictionary&#x2F;hashmap and then fail during the traversal because of some missing key they expected.<p>0: <a href="https:&#x2F;&#x2F;github.com&#x2F;matusf&#x2F;bachelor-thesis&#x2F;releases&#x2F;download&#x2F;1.0.0&#x2F;thesis.pdf" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;matusf&#x2F;bachelor-thesis&#x2F;releases&#x2F;download&#x2F;...</a><p>1: <a href="https:&#x2F;&#x2F;github.com&#x2F;matusf&#x2F;openapi-fuzzer#findings" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;matusf&#x2F;openapi-fuzzer#findings</a>
评论 #29237636 未加载
评论 #29234297 未加载
评论 #29236344 未加载
评论 #29234584 未加载
spuz超过 3 年前
I&#x27;ve just managed to get this set up with an API but it appears to get stuck testing only one of the endpoints. For example, if I set it up to test an endpoint with a query param like so:<p>&gt; &#x2F;search?q=?<p>Then it seems to try every single value for q it can think of (there are quite a few different possible strings) without ever moving onto the next endpoint. Is there anyway to configure its behaviour or provide hints as to what kind of fuzzing to do?
评论 #29244684 未加载
yellow_lead超过 3 年前
There&#x27;s another one here by Microsoft - this is cool though! great to see more Rust tools.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;restler-fuzzer" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;microsoft&#x2F;restler-fuzzer</a>
评论 #29239693 未加载
ludovicianul超过 3 年前
Looks like a good start. Things can get complicated when going into request bodies, especially oneOf, anyOf relations. I went through this journey while writing a similar tool: <a href="https:&#x2F;&#x2F;github.com&#x2F;Endava&#x2F;cats" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Endava&#x2F;cats</a>. Currently it has 72 Fuzzers registered which cover quite a lot of scenarios.
solarmist超过 3 年前
This is fantastic!<p>I was a just looking for a fuzzer for OpenAPI stuff. I&#x27;m building a project with FastAPI that I&#x27;d love to try this on.
评论 #29239059 未加载
评论 #29237926 未加载
kinow超过 3 年前
Great job! I wonder if that could be used with other fuzzers in OSS fuzz (giving tools more options to use for fuzzers and APIs)
评论 #29238959 未加载
nerdponx超过 3 年前
Does it support OAS 3.1?
评论 #29238909 未加载
评论 #29238894 未加载