<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Karthikeyan Nagaraj</title>
    <description>The latest articles on DEV Community by Karthikeyan Nagaraj (@cyberw1ng).</description>
    <link>https://dev.to/cyberw1ng</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2887813%2Febdde07a-91fd-4b16-b15c-937701e55b31.jpg</url>
      <title>DEV Community: Karthikeyan Nagaraj</title>
      <link>https://dev.to/cyberw1ng</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cyberw1ng"/>
    <language>en</language>
    <item>
      <title>$35,000 Bounty: How Inappropriate Access Control Led to GitLab Account Takeover</title>
      <dc:creator>Karthikeyan Nagaraj</dc:creator>
      <pubDate>Sun, 02 Mar 2025 17:47:35 +0000</pubDate>
      <link>https://dev.to/cyberw1ng/35000-bounty-how-inappropriate-access-control-led-to-gitlab-account-takeover-3imm</link>
      <guid>https://dev.to/cyberw1ng/35000-bounty-how-inappropriate-access-control-led-to-gitlab-account-takeover-3imm</guid>
      <description>&lt;p&gt;Introduction&lt;br&gt;
In cybersecurity, vulnerabilities can arise from the most unexpected defects. A recent account takeover vulnerability via password reset without user interaction demonstrated how a simple access control flaw could lead to full account compromise.&lt;/p&gt;

&lt;p&gt;In this article, we will explain how the vulnerability was identified, how attackers exploited it, and how developers can secure web applications from similar threats.&lt;/p&gt;

&lt;p&gt;Timeline&lt;br&gt;
Date Reported: December 20, 2023&lt;br&gt;
Severity: Critical (10.0 CVSS)&lt;br&gt;
Bounty Awarded: $35,000&lt;br&gt;
Disclosed: February 26, 2025&lt;/p&gt;

&lt;p&gt;What is Account Takeover via Password Reset?&lt;br&gt;
Password reset-based account takeover occurs when attackers manipulate the password reset feature of an application to gain unauthorized access to a user’s account. This flaw is often caused by improper validation or missing authorization checks.&lt;/p&gt;

&lt;p&gt;How the Vulnerability Worked&lt;br&gt;
The vulnerability was found in GitLab’s password reset functionality. It allowed attackers to receive password reset links intended for victims by modifying the request payload.&lt;/p&gt;

&lt;p&gt;Steps to Exploit&lt;br&gt;
Visit the Forgot Your Password? page...&lt;/p&gt;

&lt;p&gt;Click Here to Read the Complete Article on Medium - &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="https://cyberw1ng.medium.com/35-000-bounty-how-inappropriate-access-control-led-to-gitlab-account-takeover-39e071b6d9cc" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fda%3Atrue%2Fresize%3Afill%3A88%3A88%2F1%2AMQN6JztXVcWsGNXCfJGlgw.gif" alt="Karthikeyan Nagaraj"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://cyberw1ng.medium.com/35-000-bounty-how-inappropriate-access-control-led-to-gitlab-account-takeover-39e071b6d9cc" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;$35,000 Bounty: How Inappropriate Access Control Led to GitLab Account Takeover | by Karthikeyan Nagaraj | Mar, 2025 | Medium&lt;/h2&gt;
      &lt;h3&gt;Karthikeyan Nagaraj ・ &lt;time&gt;Mar 1, 2025&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fmedium-f709f79cf29704f9f4c2a83f950b2964e95007a3e311b77f686915c71574fef2.svg" alt="Medium Logo"&gt;
        cyberw1ng.Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>programming</category>
      <category>cybersecurity</category>
      <category>gitlab</category>
    </item>
    <item>
      <title>25,000$ Bounty — Simple SSRF Led to AWS Credentials Exposure</title>
      <dc:creator>Karthikeyan Nagaraj</dc:creator>
      <pubDate>Fri, 28 Feb 2025 17:21:56 +0000</pubDate>
      <link>https://dev.to/cyberw1ng/25000-bounty-simple-ssrf-led-to-aws-credentials-exposure-2807</link>
      <guid>https://dev.to/cyberw1ng/25000-bounty-simple-ssrf-led-to-aws-credentials-exposure-2807</guid>
      <description>&lt;p&gt;&lt;strong&gt;Timeline&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📅 Reported: November 23, 2023&lt;/li&gt;
&lt;li&gt;✅ Fixed: November 24, 2023&lt;/li&gt;
&lt;li&gt;💰 Bounty: &lt;strong&gt;$25,000&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Severity: &lt;strong&gt;Critical (9.8/10)&lt;/strong&gt;
&lt;strong&gt;Introduction&lt;/strong&gt;
Server Side Request Forgery (SSRF) is one of the most dangerous vulnerabilities in web applications, especially when it allows attackers to access &lt;strong&gt;internal services&lt;/strong&gt; or &lt;strong&gt;cloud metadata endpoints&lt;/strong&gt;.
Recently, a researcher found a &lt;strong&gt;critical SSRF vulnerability&lt;/strong&gt; in an Analytics Reports feature that exposed &lt;strong&gt;AWS credentials&lt;/strong&gt;, which could potentially allow full control over cloud services.
In this article, I’ll break down the vulnerability, how it was exploited, and how such attacks can be prevented.
&lt;strong&gt;What is SSRF?&lt;/strong&gt;
Server Side Request Forgery (SSRF) happens when an attacker tricks a web server into making requests to internal services or external systems.
&lt;strong&gt;Types of SSRF Attacks:&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Basic SSRF&lt;/strong&gt; — The attacker forces a server to make a request to an unintended destination.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blind SSRF&lt;/strong&gt; — The response is not visible to the attacker, but actions may still be executed on the target system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSRF to Internal Services&lt;/strong&gt; — Attackers exploit internal APIs or cloud metadata endpoints, gaining unauthorized access.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read the Complete Writeup on Medium  - &lt;a href="https://cyberw1ng.medium.com/25-000-bounty-simple-ssrf-led-to-aws-credentials-exposure-a6938e0875f9" rel="noopener noreferrer"&gt;https://cyberw1ng.medium.com/25-000-bounty-simple-ssrf-led-to-aws-credentials-exposure-a6938e0875f9&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>cybersecurity</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Finding Juicy Information from GraphQL</title>
      <dc:creator>Karthikeyan Nagaraj</dc:creator>
      <pubDate>Sun, 23 Feb 2025 08:48:33 +0000</pubDate>
      <link>https://dev.to/cyberw1ng/finding-juicy-information-from-graphql-4ljn</link>
      <guid>https://dev.to/cyberw1ng/finding-juicy-information-from-graphql-4ljn</guid>
      <description>&lt;p&gt;Introduction&lt;br&gt;
GraphQL APIs have become widely adopted due to their flexibility, but misconfigurations can expose sensitive data to unauthorized users. Attackers and bug bounty hunters often leverage GraphQL queries to extract:&lt;/p&gt;

&lt;p&gt;🔎 Hidden API endpoints&lt;br&gt;
🔎 User emails and credentials&lt;br&gt;
🔎 Internal system data&lt;br&gt;
🔎 Private reports and security information&lt;/p&gt;

&lt;p&gt;In this article, we’ll explore practical techniques for extracting juicy information from GraphQL APIs, how attackers abuse these vulnerabilities, and how to harden your GraphQL endpoints against exploitation.&lt;/p&gt;

&lt;p&gt;1️⃣ Finding Exposed GraphQL Endpoints&lt;br&gt;
Before extracting sensitive data, you first need to locate the GraphQL endpoint. Common naming conventions for GraphQL APIs include:&lt;/p&gt;

&lt;p&gt;Read the Complete Article on &lt;a href="https://cyberw1ng.medium.com/finding-juicy-information-from-graphql-22fb09bd9e61" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>graphql</category>
    </item>
    <item>
      <title>25000$ IDOR: How a Simple ID Enumeration Exposed Private Data</title>
      <dc:creator>Karthikeyan Nagaraj</dc:creator>
      <pubDate>Sat, 22 Feb 2025 05:45:22 +0000</pubDate>
      <link>https://dev.to/cyberw1ng/25000-idor-how-a-simple-id-enumeration-exposed-private-data-52a6</link>
      <guid>https://dev.to/cyberw1ng/25000-idor-how-a-simple-id-enumeration-exposed-private-data-52a6</guid>
      <description>&lt;p&gt;Timeline&lt;br&gt;
June 28, 2022: A security researcher submits a report detailing a critical GraphQL vulnerability.&lt;br&gt;
June 29, 2022: The issue is reviewed, and further information is requested.&lt;br&gt;
July 1, 2022: The vulnerability is validated and escalated for internal review.&lt;br&gt;
July 5, 2022: Severity increased to critical (9.3/10) due to the exposure of private report titles.&lt;br&gt;
July 5, 2022: Researcher is awarded $25,000 for responsibly reporting the issue.&lt;br&gt;
January 21, 2025: The report is publicly disclosed after complete mitigation.&lt;br&gt;
Introduction: A Critical IDOR in GraphQL&lt;br&gt;
Insecure Direct Object References (IDOR) remain one of the most commonly exploited vulnerabilities, often allowing unauthorized access to sensitive data.&lt;/p&gt;

&lt;p&gt;In a recent high-severity bug bounty case, a researcher discovered a GraphQL endpoint misconfiguration that allowed unauthenticated users to enumerate object IDs and extract private bug bounty program details.&lt;/p&gt;

&lt;p&gt;🔴 What was exposed?&lt;br&gt;
✅ Private program names&lt;br&gt;
✅ Scope details of security assets&lt;br&gt;
✅ Titles of private reports&lt;/p&gt;

&lt;p&gt;This vulnerability led to a $25,000 bounty payout. Let’s break down how the attack worked and how organizations can prevent such GraphQL-based IDOR vulnerabilities.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="https://cyberw1ng.medium.com/25000-idor-how-a-simple-id-enumeration-exposed-private-data-7de2f60c46fd" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fda%3Atrue%2Fresize%3Afill%3A88%3A88%2F1%2AMQN6JztXVcWsGNXCfJGlgw.gif" alt="Karthikeyan Nagaraj"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://cyberw1ng.medium.com/25000-idor-how-a-simple-id-enumeration-exposed-private-data-7de2f60c46fd" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;25000$ IDOR: How a Simple ID Enumeration Exposed Private Data | by Karthikeyan Nagaraj | Feb, 2025 | Medium&lt;/h2&gt;
      &lt;h3&gt;Karthikeyan Nagaraj ・ &lt;time&gt;Feb 21, 2025&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fmedium-f709f79cf29704f9f4c2a83f950b2964e95007a3e311b77f686915c71574fef2.svg" alt="Medium Logo"&gt;
        cyberw1ng.Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Read the Complete Article on &lt;a href="https://cyberw1ng.medium.com/25000-idor-how-a-simple-id-enumeration-exposed-private-data-7de2f60c46fd" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>bugbounty</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Exploiting GraphQL Vulnerabilities: How Misconfigurations Can Lead to Data Leaks</title>
      <dc:creator>Karthikeyan Nagaraj</dc:creator>
      <pubDate>Fri, 21 Feb 2025 07:21:36 +0000</pubDate>
      <link>https://dev.to/cyberw1ng/exploiting-graphql-vulnerabilities-how-misconfigurations-can-lead-to-data-leaks-1dgp</link>
      <guid>https://dev.to/cyberw1ng/exploiting-graphql-vulnerabilities-how-misconfigurations-can-lead-to-data-leaks-1dgp</guid>
      <description>&lt;p&gt;Introduction&lt;br&gt;
GraphQL is a powerful API query language that allows clients to request exactly the data they need. While it improves flexibility and performance, improper GraphQL configurations can lead to serious security vulnerabilities, including:&lt;/p&gt;

&lt;p&gt;🔴 Unauthorized data access&lt;br&gt;
🔴 Sensitive information disclosure&lt;br&gt;
🔴 Exploitation of misconfigured object IDs&lt;br&gt;
🔴 Mass enumeration of private data&lt;/p&gt;

&lt;p&gt;In a recent security report, a researcher discovered a severe GraphQL vulnerability that exposed sensitive data from a private system, earning a substantial bug bounty reward. This article explores how attackers exploit GraphQL vulnerabilities and how you can secure your APIs from similar threats.&lt;/p&gt;

&lt;p&gt;1️⃣ How GraphQL Works and Its Security Risks&lt;br&gt;
🔹 What is GraphQL?&lt;br&gt;
GraphQL is an alternative to REST APIs that allows clients to fetch specific data by sending structured queries. Unlike REST, which returns fixed responses, GraphQL lets users define exactly what they need.&lt;/p&gt;

&lt;p&gt;💡 Example GraphQL Query:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "query": "{user(id: 1) {name, email, role}}"&lt;br&gt;
}&lt;br&gt;
💡 Example Response:&lt;br&gt;
...&lt;/p&gt;

&lt;p&gt;Read the Complete Article on &lt;a href="https://cyberw1ng.medium.com/exploiting-graphql-vulnerabilities-how-misconfigurations-can-lead-to-data-leaks-c41d50a64cc3" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="https://cyberw1ng.medium.com/exploiting-graphql-vulnerabilities-how-misconfigurations-can-lead-to-data-leaks-c41d50a64cc3" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fda%3Atrue%2Fresize%3Afill%3A88%3A88%2F1%2AMQN6JztXVcWsGNXCfJGlgw.gif" alt="Karthikeyan Nagaraj"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://cyberw1ng.medium.com/exploiting-graphql-vulnerabilities-how-misconfigurations-can-lead-to-data-leaks-c41d50a64cc3" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Exploiting GraphQL Vulnerabilities: How Misconfigurations Can Lead to Data Leaks | by Karthikeyan Nagaraj | Feb, 2025 | Medium&lt;/h2&gt;
      &lt;h3&gt;Karthikeyan Nagaraj ・ &lt;time&gt;Feb 21, 2025&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fmedium-f709f79cf29704f9f4c2a83f950b2964e95007a3e311b77f686915c71574fef2.svg" alt="Medium Logo"&gt;
        cyberw1ng.Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>programming</category>
      <category>webdev</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>$25,000 Bug Bounty for a GraphQL Security Flaw!</title>
      <dc:creator>Karthikeyan Nagaraj</dc:creator>
      <pubDate>Thu, 20 Feb 2025 14:16:12 +0000</pubDate>
      <link>https://dev.to/cyberw1ng/25000-bug-bounty-for-a-graphql-security-flaw-3gcb</link>
      <guid>https://dev.to/cyberw1ng/25000-bug-bounty-for-a-graphql-security-flaw-3gcb</guid>
      <description>&lt;p&gt;A security researcher recently uncovered a critical GraphQL vulnerability that exposed private bug bounty program details due to insecure object ID enumeration.&lt;/p&gt;

&lt;p&gt;🔍 What was exposed? ✅ Private program names &amp;amp; security scopes ✅ Internal report titles ✅ Sensitive vulnerability details&lt;/p&gt;

&lt;p&gt;How did it happen? The API did not properly restrict access to certain GraphQL queries, allowing an attacker to enumerate IDs and extract private data—a serious misconfiguration that could have led to further exploitation.&lt;/p&gt;

&lt;p&gt;💡 Want to know how it was discovered and how to secure your GraphQL APIs?&lt;/p&gt;

&lt;p&gt;👉 Read the full article on Medium: [&lt;a href="https://cyberw1ng.medium.com/how-a-graphql-misconfiguration-exposed-sensitive-information-a-25-000-bug-bounty-report-a8207bc7ff11" rel="noopener noreferrer"&gt;link&lt;/a&gt;]&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="https://cyberw1ng.medium.com/how-a-graphql-misconfiguration-exposed-sensitive-information-a-25-000-bug-bounty-report-a8207bc7ff11" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fda%3Atrue%2Fresize%3Afill%3A88%3A88%2F1%2AMQN6JztXVcWsGNXCfJGlgw.gif" alt="Karthikeyan Nagaraj"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://cyberw1ng.medium.com/how-a-graphql-misconfiguration-exposed-sensitive-information-a-25-000-bug-bounty-report-a8207bc7ff11" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How a GraphQL Misconfiguration Exposed Sensitive Information: A $25,000 Bug Bounty Report | by Karthikeyan Nagaraj | Feb, 2025 | Medium&lt;/h2&gt;
      &lt;h3&gt;Karthikeyan Nagaraj ・ &lt;time&gt;Feb 19, 2025&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fmedium-f709f79cf29704f9f4c2a83f950b2964e95007a3e311b77f686915c71574fef2.svg" alt="Medium Logo"&gt;
        cyberw1ng.Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>cybersecurity</category>
      <category>graphql</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
