brinktrade / brink-core

Core smart contracts for Brink accounts
GNU General Public License v3.0
13 stars 7 forks source link

Security Report: Subdomain Takeover of https://dev-app.brink.trade/ Pointing to Netlify #53

Open aparcekarl opened 2 years ago

aparcekarl commented 2 years ago

Title: Web Application Security Testing

Bug url = https://dev-app.brink.trade/

Bug type = Server Security Misconfiguration > Misconfigure DNS > High Impact Subdomain Takeover

Priority= P2 (HIGH)

Description

Hi Brink Team, @Kyrrui @mikec @MatiasOS

Recently, i just found some of your subdomain (*brink.trade) pointing to vulnerable Third Party site "Netlify" This issue is about your subdomain being misconfigured in Netlify

https://dev-app.brink.trade/ POC2

Reconnaissance

I began with enumerating subdomains using turbolist3r when i stumbled upon interesting subdomain “dev-app.brink.trade”.

I used a command in CMD python turbolist3r.py -v -b -d brink.trade -a

I Verified the Cname record via MX Toolbox for DNS record check

I discovered that this subdomain “dev-app.brink.trade” is having an error with Netlify meaning a non-connection with any project. Base in my past discoveries, this is a possible subdomain takeover

Steps to Reproduce

  1. Go to Netlify and create an account
  2. Create a new project and deploy a sample app
  3. Go to Settings>Domains
  4. Then add the vulnerable subdomain dev-app.brink.trade
  5. Ownership is done.

POC1

Impact

I was able to hijack the domain dev-app.brink.trade because an outdated DNS entry pointed to Netlify. I created a resource in that web hosting and was able to host my own content accessible via your domain. HTML files located on this domain are able to use JavaScript to access globally-scoped non-HTTPOnly cookies. For example, a cookie used to authenticate against topsecret.brink.trade is scoped to *brink.trade, so a page on my hijacked domain can steal it. This vulnerability is rated as severe due to the increased impact that can be escalated to a high severity threat and boils down to the registration of a domain by somebody else (with bad intentions) in order to gain control over one or more (sub)domains. This presents an interesting attack vector, which can even lead to several high severity risks, like this authentication bypass explained in a bug bounty report https://hackerone.com/reports/172137 by @ArneSwinnen.

The attacker can use this method to steal cookies by hosting malicious javascript/spread malware/steal money by setting up the sale/setup fake dapp application to steal private keys/ steal login details of users/spear-phishing/authentication bypass and other bad stuff.

Risk Breakdown

Risk: Severe Difficulty to Exploit: Easy Complexity: Easy Weakness Categories: Deployment Misconfiguration/Stored XSS/Authentication Bypass (CWE: 16) CVSS2 Score: 9.3 (AV:N/AC:M/Au:S/C:C/I:C/A:N)

Reference: https://0xpatrik.com/subdomain-takeover/

Remediations

  1. Check your DNS-configuration for subdomains pointing to services, not in use
  2. Set up your external service so it fully listens to your wildcard DNS.
  3. Our advice is to keep your DNS entries constantly vetted and restricted.
  4. Preventing subdomain takeovers is a matter of order of operations in lifecycle management for virtual hosts and DNS. Depending on the size of the organization, this may require communication and coordination across multiple departments, which can only increase the likelihood for a vulnerable misconfiguration.
  5. Create an inventory of all of your organization’s domains and their hosting providers, and update it as things change, to ensure that nothing is left dangling

Thank you

aparcekarl commented 2 years ago

You can contact me here:

Discord : aparecekarl#6321 email: aparecekarl@yahoo.com

aparcekarl commented 2 years ago

This is now fixed