Vulnerability-Oriented Testing For RESTful APIs
Vulnerability-Oriented Testing For RESTful APIs
Wenlong Du*1 , Jian Li*1 , Yanhao Wang2 , Libo Chen B1 , Ruijie Zhao1 ,
Junmin Zhu1 , Zhengguang Han3 , Yijun Wang1 , and Zhi Xue1
1 School of Electronic Information and Electrical Engineering, Shanghai Jiao Tong University
2 Independent Researcher 3 QI-ANXIN Technology Group
(IoT) [7, 8] devices. Among different architectural styles for tion for describing RESTful API interfaces. A Swagger-based specification
outlines the usage guidelines for RESTful APIs, including the types of service
* Co-leading authors. B Corresponding author. requests accepted, the expected response format, and other relevant details.
able unified testing of APIs. These methods include functional request sequence that aligns with the execution context of
testing [12, 15, 16, 25–29, 34], compliance testing [30], and the corresponding functions. By utilizing inspection payloads
security testing [31, 32]. Parts of these approaches [26–29] tailored to different vulnerability types, we can effectively
utilize OpenAPI specifications to parse HTTP requests and assess these candidate functions for potential vulnerabilities.
generate fuzzing test cases that adhere to syntax rules. Con- We evaluated our tool on 7 real-world RESTful APIs, which
versely, some methods [12, 15, 16, 25, 34] use OpenAPI spec- resulted in the discovery of 7 zero-day vulnerabilities and 19
ifications to infer the dependencies between requests and disclosed bugs. Out of these vulnerabilities, 23 have been ver-
generate test messages that align with the API interaction ified and acknowledged by the respective vendors, and have
context. This enables effective testing of API functionality, as been assigned CVE IDs. The experiment results demonstrate
well as the identification of exceptions and specific security that VOAPI2 surpasses the state-of-the-art methods by a sig-
vulnerabilities. nificant margin, not only in terms of the number of identified
Despite the emergence of various testing approaches, it bugs but also in terms of detection efficiency.
is noteworthy that most of these methods do not effectively In summary, we make the following contributions:
utilize the specific characteristics of security vulnerabilities
to implement vulnerability-targeted testing strategies. Instead, • We propose and implement a novel method, VOAPI2 , to
they primarily rely on the detection of “500 Internal Server Er- automatically reveal the vulnerability of RESTful APIs. It
rors” as an indication of capturing bugs within API interfaces. can perform vulnerability-oriented testing based on API
Consequently, this approach leads to limited visibility and low specifications to effectively capture defects in RESTful
testing efficiency. For example, when dealing with a large- APIs, and output the corresponding PoC. We will release
scale API project similar in scale to GitLab, RESTler [12], on the source code as well as the experiment data at https:
average, requires more than 5 hours to perform a comprehen- //github.com/NSSL-SJTU/VoAPI2.
sive test. Furthermore, the security vulnerabilities uncovered • We evaluated our tool with several state-of-the-art methods.
by these tools, such as RestTestGen [16], represent only a The experiment results demonstrate that VOAPI2 surpasses
small fraction of these bugs, with the majority being func- all these methods by a significant margin, not only in terms
tional issues that primarily impact the reliability of APIs. of the number of identified bugs but also in terms of detec-
Based on our analysis of publicly disclosed API vulnera- tion efficiency.
bilities in recent years, we observed that there exists a clear
correlation between different API security vulnerabilities and • We conducted an evaluation of VOAPI2 on 7 real-world
the functionality of APIs. For instance, file upload interfaces RESTful APIs, and VOAPI2 identified 26 vulnerabilities,
can pose a risk of malware uploads, while proxy interfaces including 7 previously-unknown and 19 known security
may harbor SSRF vulnerabilities. Building upon this obser- bugs. All zero-day bugs have been reported to vendors and
vation, we propose the core concept of our method, which fixed; four of them have been assigned CVE IDs.
involves identifying API functions associated with vulnera-
bilities within API specifications and conducting targeted 2 Problem and Approach Overview
security testing on those functions. This approach aims to
achieve vulnerability-oriented API inspection, thereby fa- In this section, we first provide the background of vulnerabili-
cilitating the effective discovery of bugs across a wide range ties in RESTful API. Then, we present a motivation example,
of APIs. and our method to detect the hidden vulnerability in the sam-
There are three challenges in realizing vulnerability- ple. At last, we discuss the associated challenges and present
oriented API inspection in practice. The first challenge is effi- an overview of our solution.
ciently differentiating between various functional interfaces
in an API and identifying functions that may have security
vulnerabilities. The second challenge is effectively generating
2.1 Vulnerability of RESTful API
valid test cases based on different function interfaces and cor- REST, short for REpresentational State Transfer, is a widely
responding security vulnerability types. The last challenge is adopted software architecture style for network applications.
generating test sequences that comply with protocol states, in- It is commonly utilized within the context of HTTP, and an
corporating the related test cases, and successfully executing API adhering to this style is referred to as a RESTful API.
the function interfaces. While existing tools are available for testing REST APIs,
To address these challenges, we propose VOAPI2 , a many of them primarily focus on assessing the reliability
Vulnerability-Oriented API Inspection framework designed of these APIs rather than specifically targeting potential se-
to directly expose vulnerabilities in RESTful APIs. Our ap- curity vulnerabilities. However, similar to web applications,
proach begins by identifying semantic keywords associated REST APIs are also vulnerable to various security threats, as
with potentially weak functions within the API specification. demonstrated by the presence of such vulnerabilities in the
It then integrates a suitable corpus and employs a stateful CVE database. These vulnerabilities encompass issues like
1 /Images/Remote:
2 get: /Images/Ratings
3 operationId: GetRemoteImage
/Images/Remote
4 parameters:
5 description: The image url. /Items
6 in: query
/Items/Filter
7 name: imageUrl
8 required: true …
9 schema:
REST APIs
10 description: The image url. Attacker Internal Service
11 format: uri
12 type: string
13 responses: Figure 2: Exploitation process of CVE-2021-29490.
14 "200":
15 content:
16 image/*: (Line 26) that offers category tags to classify the API.
17 schema:
18 format: binary In Jellyfin (version 10.7.3 and earlier), there exists a
19 type: string Server-Side Request Forgery (SSRF) vulnerability (CVE-
20 description: Remote image returned. 2021-29490 [35]) in the aforementioned API endpoint. Ex-
21 "404": ploiting this vulnerability requires the attacker to send a GET
22 content:
23 # omitted request to the /Images/Remote API with testing payloads (e.g.,
24 description: Remote image not found. http://LAN_IP/ssrf) in the query parameter “imageUrl”.
25 summary: Gets a remote image. The root cause of this vulnerability is the lack of filtering
26 tags:
for the remote resource address specified by the “imageUrl”
27 - RemoteImage
parameter in the backend of the API service. This oversight
allows attackers to freely access internal resources by sending
Figure 1: Specification of an API endpoint.
an HTTP request (i.e., the testing payload) from the Jellyfin
server, as depicted in Figure 2.
Server-Side Request Forgery, Unrestricted File Upload, OS As we see, the vulnerability in the motivation sample is
Command Injection, Path Traversal, and more. closely related to the functionality of the corresponding API
endpoint. Specifically, the SSRF bug typically arises in the
Motivation Example. OpenAPI, formerly known as Swag-
API path responsible for retrieving a remote resource. As
ger, provides a specification for describing RESTful APIs.
demonstrated in this example, the purpose of this API end-
Typically, the specification document is presented in JSON or
point is to fetch a remote image, as indicated in its summary
YAML format and encompasses the resources and operations
(Line 25). The parameter “imageUrl” is utilized to specify the
of the RESTful API. It comprises a collection of Schema Ob-
address of the resource (Line 5). Consequently, if the back-
jects, which encompass various elements such as API service
end of this API interface fails to rigorously validate input
endpoints (commonly referred to as paths), CRUD operations
parameters, it may result in an SSRF vulnerability.
(such as GET, POST, PUT and DELETE) performed on an endpoint,
input parameters, and expected responses. Each schema object
follows a predefined structure with corresponding parame- 2.2 Observation and Our Method
ter types. Users can leverage the specification to generate
valid API operations and communicate with API services by Current security testing methods for APIs suffer from two
presenting them as HTTP requests. primary efficiency issues and most of them cannot detect the
Figure 1 illustrates a simplified fragment of the OpenAPI vulnerability hidden in the motivation sample. Firstly, they
specification for Jellyfin [3], an open-source media man- are time-consuming. For example, RESTler [12] required over
agement system. This fragment specifies an API endpoint, five hours to test four groups of API interfaces in the open-
/Images/Remote, which supports a single CRUD operation, source code management software GitLab, with the longest ef-
GET. It defines the input parameters and expected response fective request sequence length tested remaining at just three.
for this endpoint. Specifically, the input parameter is named This inefficiency can be attributed to testing tools needing
“imageUrl” (Line 7), which is required and used to specify to traverse all interfaces indiscriminately, rather than focus-
the URL of the image (Line 10). The corresponding schema ing on a specific API interface in-depth. Secondly, existing
(Line 9) designates the parameter type as a string (Line 12). testing tools heavily rely on service status feedback from
The response section includes the HTTP status code and API endpoints to gauge testing effectiveness, resulting in the
response message (Line 13). Furthermore, this example in- identification of mostly service-disrupting bugs. For instance,
cludes a “summary” field (Line 25), which typically provides a RESTler discovered 28 bugs causing GitLab [36] service un-
brief description of the API’s functionality (similar to the availability, while RestCT [25] identified eight similar issues
“description” field). Additionally, there is a “tags” field in Bing Maps [37] and GitLab.
Table 1: Statistical Data of Known APIs’ Vulnerabilities. Here we list the disclosed API bugs of six common types that we
collected from the CVE database. #Bug indicates the number of disclosed bugs. #Ratio indicates the proportion of common
functionality in all vulnerable functions.
CWE ID Vulnerability Type #Bug Functionality Summary of Vulnerable APIs #Ratio Keywords
CWE-434 Unrestricted Upload of File 42 Most of them focus on uploading. 83%(35/42) “upload”,“submit”,“import”, etc.
Most of them need to request a remote source,
CWE-918 Server-Side Request Forgery 21 81%(17/21) “remote”,“proxy”,“URL”, etc.
like Proxy interfaces.
They are responsible for handling file through
CWE-22 Path Traversal 31 52%(16/31) “path”,“dir”,“file”, etc.
a "Path" variable.
Most of them are used to set configurations
CWE-78 OS Command Injection 55 40%(22/55) “CMD”,“command”,“system”, etc.
through commands executed in OS shell.
CWE-89 SQL Injection 70 They are responsible for handling SQL database. 53%(37/70) “SQL”,“database”,“select”, etc.
CWE-79 Cross-site Scripting 55 They present front-end pages that show text. 35%(19/55) “display”,“content”,“view”, etc.
Furthermore, these testing methods often lack a targeted by a specific type of bug belonged to the same functional-
strategy and approach based on specific security vulnerabil- ity. These findings confirm the validity of our intuition for
ities. Instead, they primarily rely on detecting generic bugs these common vulnerabilities. Additionally, we identified
through feedback such as “500 Internal Server Errors” from a group of commonly used strings in specific functionality
API endpoints. Consequently, this leads to an indiscriminate as keywords. For example, in an upload interface, we may
and inefficient testing approach, with the majority of detected observe frequently used strings such as “upload”, “submit”,
bugs being functional issues rather than genuine security vul- and “import” which can be used as keywords to identify cor-
nerabilities. responding interfaces from API specifications and support
Observation. According to the motivation sample, we ob- subsequent bug detection, as shown in Table 1. It is also im-
serve that we can assess the functionality of APIs by exam- portant to note that these six types of vulnerabilities are the
ining certain feature strings commonly used to define API mainstream of web vulnerabilities, collectively accounting
features in the specification, such as the presence of remote for over 70% of the total [38].
in the current example. Meanwhile, the keyword remote is Our Method. Building upon our observation and verifica-
also strongly associated with the type of vulnerability (SSRF). tion result, we propose the core concept of our method, which
To validate our observation that the category of vulnerability involves identifying API functions associated with vulnera-
present in an API interface is strongly linked to the func- bilities within API specifications and conducting targeted
tionality of that interface via some keywords, we gathered security testing on those functions. This approach aims to
data from the CVE database on the most common types of achieve vulnerability-oriented API inspection, thereby facili-
revealed API vulnerabilities (e.g., Unrestricted Upload and tating the effective discovery of bugs across a wide range of
SSRF) and selected vulnerabilities that had been disclosed in RESTful APIs. Different from the previous method, it con-
CVE records with specific details, such as the exact location siders the API functionality when identifying and testing for
of the bug within the API interface. vulnerabilities.
Based on our collected data2 , we first conduct a word fre-
quency analysis on the API paths and parameters of API
interfaces according to these vulnerabilities’ CVE descrip- 2.3 Challenges and Our Approach
tions. Then, combining with expert knowledge (analyze the There are three challenges in realizing vulnerability-oriented
root cause of these vulnerabilities), we extract high-frequency API inspection in practice.
words that also reflect the functionality of these vulnerable C1: How to efficiently differentiate between various func-
APIs, such as "upload" and "submit," and mapped these for tional interfaces in an API and identify functions that may
the functionalities (e.g., File Upload function) and vulner- have security vulnerabilities? API documentations usually
abilities (e.g., Unrestricted Upload of File). Finally, we try contain a large number of APIs, but only a small portion of
to construct a mapping from the vulnerability type to the them may have security vulnerabilities. Hence, it is crucial to
corresponding function functionality and its feature strings employ a method that can identify candidate APIs, enabling
frequently applied in context. us to enhance testing efficiency and minimize ineffective test
Our analysis results are presented in Table 1, which shows requests.
that, on average, 57% of vulnerable API interfaces affected C2: How to generate test case sequences that comply with pro-
2 All the vulnerability context information and keywords gathered during tocol states and trigger the vulnerable functional interfaces?
this construction process can be found at the link: https://github.com/N API invocations are state-based and often require a series of
SSL-SJTU/VoAPI2/CVE-Information.xlsx. pre-request actions (request sequences) to fulfill the execution
/account
Test Sequence Generator Test Case
/account/email PoC
… Generator
/avatars/favicon
/avatars/image CVE & NVD Expert Analysis Reverse Parameter
… Sequence Values
/functions
…
Construction Generation Vulnerability Verifier
Path Param Test Case ② Response
API Specification Keywords Keywords Sender ① Send
③ Verification
④ Feedback
Build API
1. /avatars/favicon
tagged_param: url Application
Specification Function Vulnerability 2. /avatars/image
Bug?
tagged_param: url
Parser Mapper …
Validation
Candidate APIs Server
Step 1: Specification Analysis Step 2: Candidate Interface Extraction Step 3: Test Sequence Generation Step 4: Feedback-based Test
Figure 3: System Architecture of VOAPI2 . VOAPI2 first analyzes the API specification and identifies semantic keywords
associated with potentially weak functions within the API specification. It then integrates a suitable corpus and employs a stateful
request sequence that aligns with the execution context of the corresponding functions. By utilizing inspection payloads tailored
to different vulnerability types, VOAPI2 can effectively assess these candidate functions for potential vulnerabilities.
7 7 7 7 7 7 7
6 6 6 6 6 6 6
5 5 5 5 5 5 5
4 4 4 4 4 4 4
3 3 3 3 3 3 3
2 2 2 2 2 2 2
1 1 1 1 1 1 1
0 0 0 0 0 0 0
RE 2
Re er
ZA
As
RE 2
Re er
ZA
As
RE 2
Re er
ZA
As
RE 2
Re er
ZA
As
RE 2
Re er
ZA
As
RE 2
Re er
ZA
As
RE 2
Re er
ZA
As
Vo
Vo
Vo
Vo
Vo
Vo
Vo
IN
IN
IN
IN
IN
IN
IN
tra
tra
tra
tra
tra
tra
tra
stT
stT
stT
stT
stT
stT
stT
AP
AP
AP
AP
AP
AP
AP
ST
ST
ST
ST
ST
ST
ST
P
ER n
ER n
ER n
ER n
ER n
ER n
ER n
es
es
es
es
es
es
es
I
I
l
l
tG
tG
tG
tG
tG
tG
tG
e
e
Figure 4: The vulnerabilities and their types uncovered by different tools on evaluation benchmarks .
Table 5: Compared with three RESTful API testing tools. #500 means the number of HTTP 500 errors found by tools. #Packet
means the number of all packets sent in testing. #Ratio is equal to total #500 divided by total #Packet.
Appwrite Casdoor Gitea Jellyfin Microcks Rbaskets GitLab
Compare #Ratio
#500 #Packet Time #500 #Packet Time #500 #Packet Time #500 #Packet Time #500 #Packet Time #500 #Packet Time #500 #Packet Time
RESTler 5 88,558 5h 0 165,470 5h 1 297,419 5h 54 2,175 12m07s 19 67,128 5h 0 20,435 5h 32 105,931 5h 0.015%
MINER 4 64,944 5h 0 104,352 5h 1 31,668 5h 68 23,002 5h 13 143,830 5h 0 17,422 5h 13 48,267 5h 0.023%
RestTestGen 1 9,030 19m49s 0 16,340 34m13s 2 58,200 4h37m 63 71,440 4h43m 15 7,340 8m5s 0 2,140 1m32s 41 57,550 1h52m 0.055%
RestTestGen+V 1 6,334 12m42s 0 8,920 13m09s 0 32,550 1h28m 55 48,740 3h57m 11 4,246 5m51s 0 1,550 1m03s 36 43,110 1h33m 0.071%
VOAPI2 1 2,123 1m51s 0 6,987 6m27s 0 9,137 7m05s 23 13,578 10m53s 2 509 24s 0 238 13s 3 1,558 5m03s 0.085%
14 bugs that elude detection by other tools. Based on our anal- positive rate.
ysis, this phenomenon can be attributed to twofold factors. For path traversal vulnerabilities, ZAP lacks further vali-
First, in the case of RESTful API testing tools (e.g., RESTler), dation. It solely bases its determination of a vulnerability’s
they often lack a comprehensive testing corpus required for existence on whether the test request returns a 2xx status code.
verifying various types of vulnerabilities (e.g., SSRF) within On the other hand, VOAPI2 goes a step further by analyzing
their corresponding endpoints. Thus, these tools often fail the response content, checking for the presence of content
to detect a vulnerability if it does not lead to a HTTP 500 er- corresponding to the test payload to confirm the existence
ror. Second, scanning tools (e.g., ZAP) face challenges in of the vulnerability. For instance, when the test payload is
constructing an appropriate sequence encompassing multi- "/etc/passwd", VOAPI2 will match the response content for
ple requests that align with the data dependencies existing characteristic strings (e.g., root) to validate the vulnerability.
among API endpoints. Thus, these tools fail to identify the re- In terms of VOAPI2 , false positives may occur when check-
spective vulnerabilities (e.g., XSS) concealed behind intricate ing a particular XSS (i.e., stored XSS) and the implicit unre-
interactions, as exemplified in §5.4. stricted upload vulnerability. In these scenarios, we need to
trigger vulnerability manually and check whether vulnerabil-
ity exists or not. Moreover, we thoroughly discuss the root
5.3 Accuracy (RQ1) causes and the corresponding improvement ways in §6.
We further analyzed the accuracy of VOAPI2 and vulnerabil-
ity scanners. All alerts were manually verified to determine if 5.4 Real-world Vulnerabilities (RQ1)
they were true vulnerabilities, thereby identifying false pos-
itives (FP). The false discovery rate (FDR = FP/(FP+TP)) We applied VOAPI2 to discover security vulnerabilities in
was calculated and presented in Table 7. It can be observed real API applications and found various vulnerabilities. As
that VOAPI2 has lower false positive rates compared to the shown in Table 6, we identified more types of vulnerabilities
scanners, which can be attributed to VOAPI2 ’s vulnerability- compared to scanning tools, especially on XSS and SSRF.
oriented strategy and more accurate vulnerability validation The main reason is that our method can generate effective
strategy. request sequences that access multiple endpoints in proper
For XSS vulnerabilities, ZAP and Astra conduct tests on order, allowing us to trigger deeper vulnerabilities.
all APIs and determine the existence of an XSS vulnera- Case Study: XSS. The XSS vulnerability (CVE-2022-
bility solely based on the presence of the XSS payload in 2925) was discovered in the Appwrite application. As
the response. However, a significant number of these APIs shown in Figure 5, this bug exists in five API end-
do not contain display functions. Consequently, the payload points (/teams, /users, /functions, /database/collections,
would not be displayed on any particular page, which re- /teams/{teamId}/memberships), and the vulnerable argu-
sults in a high incidence of false positives. Correspondingly, ments in these endpoints are "name" marked in blue color.
the vulnerability-oriented testing strategy helps VOAPI2 find In our experiments, both ZAP and Astra face significant
more API paths related to XSS, which leads to a lower false difficulties. While they may encounter problems in gen-
Table 6: RESTful API vulnerabilities identified by all tools. For Producer, " indicates this API endpoint has a producer,
while % indicates it doesn’t have; For 0-day, " indicates that this vulnerability is a zero-day vulnerability while % indicates it is
not; For Vulnerability Identification Tools, " indicates that this tool can identify the vulnerability, " indicates only this tool
can identify the vulnerability, while % indicates it cannot.
Vulnerability Identification Tools
Application Version Path Parameter Type Producer 0-day Bug-IDs
VOAPI2 RESTler RestTestGen MINER ZAP Astra
0.9.3 /avatars/favicon url SSRF % " CVE-2023-27159 " % % % " "
0.9.3 /avatars/image url SSRF % " CVE-2023-27159 " % " % " "
0.9.3 /teams name XSS % % CVE-2022-2925 " % % % % "
Appwrite 0.9.3 /teams/{teamId}/memberships name XSS " % CVE-2022-2925 " % % % % %
0.9.3 /database/collections name XSS % % CVE-2022-2925 " % % % % %
0.9.3 /functions name XSS % % CVE-2022-2925 " % % % % %
0.9.3 /usrs name XSS % % CVE-2022-2925 " % % % % %
Rbaskets 1.2.3 /api/baskets/{name} forward_url SSRF % " CVE-2023-27163 " % % % % %
10.7.1 /Images/Remote imageUrl SSRF % % CVE-2021-29490 " " % " " "
10.7.1 /Items/RemoteSearch/Image imageUrl SSRF % % CVE-2021-29490 " % % % " "
10.7.1 /Items/{itemId}/RemoteImages/Download imageUrl SSRF " % CVE-2021-29490 " % % % % %
10.7.1 /Repositories Url SSRF % " CVE-2023-27161 " % % % % %
Jellyfin 10.7.1 /Playlists name XSS % % CVE-2023-23636 " % % % % %
10.7.1 /Repositories name XSS % % CVE-2022-35910 " % % % % %
10.7.1 /Collections name XSS % % CVE-2023-23635 " " % % % %
10.7.1 /Startup/User Name XSS % " 1 unassigned " % % % % %
1.13.0 /api/get-organizations field SQL Injection % % CVE-2022-24124 " % % % " "
Casdoor
1.13.0 /api/upload-resource fullFilePath Unrestricted Upload % % CVE-2022-38638 " % % % % %
1.17.1 /jobs repositoryUrl SSRF % " 1 unassigned " " " " % %
Microcks
1.17.1 /artifact/download url SSRF % " 1 unassigned " " % " " "
1.16.7 /repos/{owner}/{repo}/contents/{filepath} content Unrestricted Upload " % CVE-2022-1928 " % % % % %
Gitea
1.16.7 /repos/{owner}/{repo}/hooks url SSRF " % CVE-2018-15192 " % % % % %
8.17.0 /v3/hooks url SSRF % % CVE-2018-8801 " " % % % %
8.17.0 /v3/projects import_url SSRF % % CVE-2022-0249 " " % % % %
GitLab 8.17.0 /v3/projects/{id}/deploy_keys title XSS " % CVE-2022-2230 " % % % % %
8.17.0 /v3/projects/{id}/milestone title XSS " % CVE-2022-1190 " % " % % %
61.1 62.7
59.1 58.8
60
52.9
50.0
45.3 46.6
44.0
40 37.4 37.3
32.1 30.1
27.4 27.1 28.9 28.6
24.9
21.1
20
11.7 9.8 11.5 11.5
0
Appwrite Casdoor Gitea Jellyfin Microcks Rbaskets GitLab Average
[3] Jellyfin. https://jellyfin.org/. [17] Tobias Fertig and Peter Braun. Model-driven testing of
RESTful APIs. In International Conference on World
[4] Casdoor. https://casdoor.org/. Wide Web: Companion, pages 1497–1502, 2015.
[5] Appwrite. https://appwrite.io/. [18] Andrea Arcuri. RESTful API automated test case gener-
ation with EvoMaster. ACM Transactions on Software
[6] Microcks. https://microcks.io/. Engineering and Methodology (TOSEM), 28(1):1–37,
2019.
[7] CVE-2021-3044. https://nvd.nist.gov/vuln/de
tail/CVE-2021-3044. [19] Andrea Arcuri. Automated blackbox and whitebox test-
ing of RESTful APIs with EvoMaster. IEEE Software,
[8] CVE-2019-12643. https://nvd.nist.gov/vuln/de 2020.
tail/CVE-2019-12643.
[20] Andrea Arcuri and Juan P Galeotti. Handling SQL
[9] Representational state transfer. https://en.wikiped databases in automated system test generation. ACM
ia.org/wiki/Representational_state_transfe Transactions on Software Engineering and Methodology
r. (TOSEM), 29(4):1–31, 2020.
[10] Tomer Bar. Notifying our Developer Ecosystem about a [21] Andrea Arcuri and Juan P Galeotti. Enhancing search-
Photo API Bug. https://developers.facebook.co based testing with testability transformations for existing
m/blog/post/2018/12/14/notifying-our-devel APIs. ACM Transactions on Software Engineering and
oper-ecosystem-about-a-photo-api-bug/, 2018. Methodology (TOSEM), 31(1):1–34, 2021.
[11] Twitter. An Incident Impacting Your Account Identity. [22] Vaggelis Atlidakis, Roxana Geambasu, Patrice Gode-
https://privacy.twitter.com/en/blog/2020/a froid, Marina Polishchuk, and Baishakhi Ray. Pythia:
n-incident-impacting-your-account-identity, Grammar-Based Fuzzing of REST APIs with Coverage-
2020. guided Feedback and Learning-based Mutations. arXiv
preprint arXiv:2005.11498 [cs.SE], 2020.
[12] Vaggelis Atlidakis, Patrice Godefroid, and Marina Pol-
[23] S. T. Liu. Coverage guided fuzzing in python-based
ishchuk. RESTler: Stateful REST API Fuzzing. In
web server. Master’s thesis, Institute of Computer Sci-
2019 IEEE/ACM 41st International Conference on Soft-
ence and Engineering, National Chiao Tung University,
ware Engineering (ICSE), pages 748–758, Montreal,
Hsinchu, Taiwan, 2019.
QC, Canada, 2019. IEEE.
[24] Runtime application self-protection. https://en.wik
[13] Hamza Ed-Douibi, Javier Luis Cánovas Izquierdo, and ipedia.org/wiki/Runtime_application_self-p
Jordi Cabot. Automatic generation of test cases for rotection.
REST APIs: a specification-based approach. In Interna-
tional Enterprise Distributed Object Computing Confer- [25] Huayao Wu, Lixin Xu, Xintao Niu, and Changhai Nie.
ence, pages 181–190, 2018. Combinatorial testing of RESTful APIs. In Proceedings
of the 44th International Conference on Software En- [42] Scrapy. https://scrapy.org/.
gineering (ICSE ’22), pages 426–437, New York, NY,
USA, 2022. Association for Computing Machinery. [43] Beautiful Soup. https://www.crummy.com/softwar
e/BeautifulSoup/.
[26] AppSpider. https://www.rapid7.com/products/
appspider. [44] OWASP Zed Attack Proxy. https://www.zaproxy.
org/.
[27] Qualys Web Application Scanning (WAS). https:
[45] ASTRA. https://github.com/flipkart-incubat
//www.qualys.com/apps/web-app-scanning/.
or/Astra.
[28] TnT-Fuzzer. https://github.com/Teebytes/Tn
[46] Chenyang Lyu, Jiacheng Xu, Shouling Ji, Xuhong
T-Fuzzer.
Zhang, Qinying Wang, Binbin Zhao, Gaoning Pan, Wei
[29] APIFuzzer. https://github.com/KissPeter/API Cao, Peng Chen, and Raheem Beyah. Miner: A hy-
Fuzzer. brid data-driven approach for rest api fuzzing. In 32th
USENIX Security Symposium (USENIX Security 23),
[30] Patrice Godefroid, Daniel Lehmann, and Marina Pol- 2023.
ishchuk. Differential regression testing for REST APIs.
In Proceedings of the 29th ACM SIGSOFT International [47] Docker Hub. https://hub.docker.com/.
Symposium on Software Testing and Analysis (ISSTA
[48] Rbaskets. https://rbaskets.in/.
2020), pages 312–323, New York, NY, USA, 2020. As-
sociation for Computing Machinery. [49] Gitea. https://gitea.io/.
[31] Y. Luo et al. RestSep: Towards a Test-Oriented Privi- [50] Deng Gelei, Zhang Zhiyi, Li Yuekang, Liu Yi, Zhang
lege Partitioning Approach for RESTful APIs. In 2017 Tianwei, Liu Yang, Yu Guo, and Wang Dongjin. Nau-
IEEE International Conference on Web Services (ICWS), tilus: Automated restful api vulnerability detection. In
pages 548–555, Honolulu, HI, USA, 2017. 32th USENIX Security Symposium (USENIX Security
23), 2023.
[32] Y. Luo, H. Zhou, Q. Shen, A. Ruan, and Z. Wu. RestPL:
Towards a Request-Oriented Policy Language for Ar-
bitrary RESTful APIs. In 2016 IEEE International
Conference on Web Services (ICWS), pages 666–671,
San Francisco, CA, USA, 2016.