A New Internet Library: Add Your Website/Blog or Suggest A Website/Blog to our Free Web Directory http://anil.myfunda.net.

Its very simple, free and SEO Friendly.
Submit Now....

Friday, August 28, 2020

CORS Misconfigurations On A Large Scale

Inspired by James Kettle's great OWASP AppSec Europe talk on CORS misconfigurations, we decided to fiddle around with CORS security issues a bit. We were curious how many websites out there are actually vulnerable because of dynamically generated or misconfigured CORS headers.

The issue: CORS misconfiguration

Cross-Origin Resource Sharing (CORS) is a technique to punch holes into the Same-Origin Policy (SOP) – on purpose. It enables web servers to explicitly allow cross-site access to a certain resource by returning an Access-Control-Allow-Origin (ACAO) header. Sometimes, the value is even dynamically generated based on user-input such as the Origin header send by the browser. If misconfigured, an unintended website can access the resource. Furthermore, if the Access-Control-Allow-Credentials (ACAC) server header is set, an attacker can potentially leak sensitive information from a logged in user – which is almost as bad as XSS on the actual website. Below is a list of CORS misconfigurations which can potentially be exploited. For more technical details on the issues read the this fine blogpost.

Misconfiguation Description
Developer backdoorInsecure developer/debug origins like JSFiddler CodePen are allowed to access the resource
Origin reflectionThe origin is simply echoed in ACAO header, any site is allowed to access the resource
Null misconfigurationAny site is allowed access by forcing the null origin via a sandboxed iframe
Pre-domain wildcardnotdomain.com is allowed access, which can simply be registered by the attacker
Post-domain wildcarddomain.com.evil.com is allowed access, can be simply be set up by the attacker
Subdomains allowedsub.domain.com allowed access, exploitable if the attacker finds XSS in any subdomain
Non-SSL sites allowedAn HTTP origin is allowed access to a HTTPS resource, allows MitM to break encryption
Invalid CORS headerWrong use of wildcard or multiple origins,not a security problem but should be fixed

The tool: CORStest

Testing for such vulnerabilities can easily be done with curl(1). To support some more options like, for example, parallelization we wrote CORStest, a simple Python based CORS misconfiguration checker. It takes a text file containing a list of domain names or URLs to check for misconfigurations as input and supports some further options:

usage: corstest.py [arguments] infile

positional arguments:
infile File with domain or URL list

optional arguments:
-h, --help show this help message and exit
-c name=value Send cookie with all requests
-p processes multiprocessing (default: 32)
-s always force ssl/tls requests
-q quiet, allow-credentials only
-v produce a more verbose output

CORStest can detect potential vulnerabilities by sending various Origin request headers and checking for the Access-Control-Allow-Origin response. An example for those of the Alexa top 750 websites which allow credentials for CORS requests is given below.

Evaluation with Alexa top 1 Million websites

To evaluate – on a larger scale – how many sites actually have wide-open CORS configurations we did run CORStest on the Alexa top 1 million sites:

$ git clone https://github.com/RUB-NDS/CORStest.git && cd cors/
$ wget -q http://s3.amazonaws.com/alexa-static/top-1m.csv.zip
$ unzip top-1m.csv.zip
$ awk -F, '{print $2}' top-1m.csv > alexa.txt
$ ./corstest.py alexa.txt

This test took about 14 hours on a decent connection and revealed the following results:

Only 29,514 websites (about 3%) actually supported CORS on their main page (aka. responded with Access-Control-Allow-Origin). Of course, many sites such as Google do only enable CORS headers for certain resources, not directly on their landing page. We could have crawled all websites (including subdomains) and fed the input to CORStest. However, this would have taken a long time and for statistics, our quick & dirty approach should still be fine. Furthermore it must be noted that the test was only performed with GET requests (without any CORS preflight) to the http:// version of websites (with redirects followed). Note that just because a website, for example, reflects the origin header it is not necessarily vulnerable. The context matters; such a configuration can be totally fine for a public sites or API endpoints intended to be accessible by everyone. It can be disastrous for payment sites or social media platforms. Furthermore, to be actually exploitable the Access-Control-Allow-Credentials: true (ACAC) header must be set. Therefore we repeated the test, this time limited to sites that return this header (see CORStest -q flag):

$ ./corstest.py -q alexa.txt

This revealed even worse results - almost half of the websites supporting ACAO and ACAC headers contained a CORS misconfigurations that could be exploited directly by a web attacker (developer backdoor, origin reflection, null misconfig, pre-/post-domain wildcard):

The Impact: SOP/SSL bypass on payment and taxpayer sites

Note that not all tested websites actually were exploitable. Some contained only public data and some others - such as Bitbucket - had CORS enabled for their main page but not for subpages containing user data. Manually testing the sites, we found to be vulnerable:
  • A dozen of online banking, bitcoin and other payment sites; one of them allowed us to create a test account so we were able to write proof-of-concept code which could actually have been used to steal money
  • Hundred of online shops/e-commerce sites and a bunch of hotel/flight booking sites
  • Various social networks and misc sites which allow users to log in and communicate
  • One US state's tax filing website (however, this one was exploitable by a MitM only)
We informed all sites we manually tested and found to be vulnerable. A simple exploit code example when logged into a website with CORS origin reflection is given below.


The Reason: Copy & Paste and broken frameworks

We were further interested in reasons for CORS misconfigurations. Particularly we wanted to learn if there is a correlation between applied technology and misconfiguration. Therefore we used WhatWeb to fingerprint the web technologies for all vulnerable sites. CORS is usually enabled either directly in the HTTP server configuration or by the web application/framework. While we could not identify a single major cause for CORS misconfigurations, we found various potential reasons. A majority of dangerous Access-Control-* headers had probably been introduced by developers, others however are based on bugs and bad practices in some products. Insights follow:
  • Various websites return invalid CORS headers; besides wrong use of wildcards such as *.domain.com, ACAO headers which contain multiple origins can often be found; Other examples of invalid - but quite creative - ACAO values we observed are: self, true, false, undefined, None, 0, (null), domain, origin, SAMEORIGIN
  • Rack::Cors, the de facto standard library to enable CORS for Ruby on Rails maps origins '' or origins '*' into reflecting arbitrary origins; this is dangerous, because developers would think that '' allows nothing and '*' behaves according to the spec: mostly harmless because it cannot be used to make to make 'credentialed' requests; this config error leads to origin reflection with ACAC headers on about a hundred of the tested and vulnerable websites
  • A majority of websites which allow a http origin to CORS access a https resource are run on IIS; this seems to be no bug in IIS itself but rather caused by bad advises found on the Internet
  • nginx is the winner when it comes serving websites with origin reflections; again, this is not an issue of nginx but of dangerous configs copied from "Stackoverflow; same problem for Phusion Passenger
  • The null ACAO value may be based on programming languages that simply return null if no value is given (we haven't found any specific framework though); another explanation is that 'CORS in Action', a popular book on CORS, contains various examples with code such as var originWhitelist = ['null', ...], which could be misinterpreted by developers as safe
  • If CORS is enabled in the crVCL PHP Framework, it adds ACAC and ACAO headers for a configured domain. Unfortunatelly, it also introduces a post-domain and pre-subdomain wildcard vulnerability: sub.domain.com.evil.com
  • All sites that are based on "Solo Build It!" (scam?) respond with: Access-Control-Allow-Origin: http://sbiapps.sitesell.com
  • Some sites have :// or // as fixed ACAO values. How should browsers deal with this? Inconsistent at least! Firefox, Chrome, Safari and Opera allow arbitrary origins while IE and Edge deny all origins.

Related word


How To Change Facebook’s Default Theme To Any Color You Want

Change Facebook Theme Using Chrome Extension

How To Change Facebook's Default Theme To Any Color You Want

We are going to share an interesting trick on changing your Facebook default theme. You just need a Google Chrome extension to perform this trick. If you are among me who feels very fatigued with the look of Facebook's by default theme then this is a must-see post because you will find out the easiest trick to make your facebook more attractive than before.

Facebook is a social networking site which empowers people to connect with friends and people around. That's how Facebook is habitually introduced. However, Facebook is beyond the need of being introduced as almost everyone is on it.
   A couple of Days ago I was simply Surfing Google Chrome website and I somehow stumbled upon a Chrome Extension. Yes, a Chrome extension that will give your Facebook a Whole new look. I was apprehensive to try it, So I just installed it and checked my facebook. I was astonished to see my facebook homepage have all new look. I found it refreshing and decided to write steps on How to Change Facebook Themes using Chrome Extension.

How To Change Facebook's Default Theme To Any Color You Want

If You are among me who feels very fatigued with the look of Facebook's by default theme then this is a must-see post, Because you will find out the easiest trick to make your facebook more attractive than before. Simply follow the steps to know about it.

How to Change Facebook Theme Using Chrome Extension

Step 1. Install Stylish for Chrome from the Chrome Web Store. It will take hardly a minute to get installed in your Chrome browser.
Change Facebook Theme Using Chrome Extension
Change Facebook Theme Using Chrome Extension
Step 2. Navigate to Facebook.com and click on the S button. Click on Find Styles for this Site to open a new tab with free themes to use for Facebook. Most of the themes are free and attractive too you can easily browse over the full website to discover your favorite theme.
Change Facebook Theme Using Chrome Extension
Change Facebook Theme Using Chrome Extension
Step 3. Now You will be redirected towards https://userstyles.org Guess what! This site contains huge numbers of Facebook themes, One thing is for sure that you will be confused in-between what to select and which one to skip. Select any them and click on it. Now you will be given a full preview of your selected theme.
Change Facebook Theme Using Chrome Extension
Change Facebook Theme Using Chrome Extension
Step 4. If everything is fine in the previewed theme, click on Install with Stylish button at the top right corner of the page. It will take few seconds or minutes depends on your theme size to be installed in Stylish Extension, once installed you will be notified with a success message.
Change Facebook Theme Using Chrome Extension
Change Facebook Theme Using Chrome Extension
Step 5. Now whenever you open Facebook, it will show the theme that you have installed with Stylish instead of the boring old blue theme.
Change Facebook Theme Using Chrome Extension
Change Facebook Theme Using Chrome Extension

More information


Blockchain Exploitation Labs - Part 2 Hacking Blockchain Authorization


Bypassing Blockchain Authorization via Unsecured Functions


Note: Since the first part of this series I have also uploaded some further videos on remediation of reentrancy and dealing with compiler versions when working with this hacking blockchain series.  Head to the console cowboys YouTube account to check those out.  Haha as mentioned before I always forget to post blogs when I get excited making videos and just move on to my next project… So make sure to subscribe to the YouTube if you are waiting for any continuation of a video series.. It may show up there way before here. 

Note 2:  You WILL run into issues when dealing with Ethereum hacking, and you will have to google them as versions and functionality changes often... Be cognizant of versions used hopefully you will not run into to many hard to fix issues. 

In the second part of this lab series we are going to take a look at privacy issues on the blockchain which can result in a vulnerably a traditional system may  not face. Since typically blockchain projects are open source and also sometimes viewable within blockchain explorers but traditional application business logic is not usually available to us. With traditional applications we might not find these issues due to lack of knowledge of internal functionality or inability to read private values on a remote server side script.  After we review some issues we are going to exploit an authorization issues by writing web3.js code to directly bypass vertical authorization restrictions.

Blockchain projects are usually open source projects which allow you to browse their code and see what's going on under the hood.  This is fantastic for a lot of reasons but a developer can run into trouble with this if bad business logic decisions are deployed to the immutable blockchain.  In the first part of this series I mentioned that all uploaded code on the blockchain is immutable. Meaning that if you find a vulnerability it cannot be patched. So let's think about things that can go wrong..

A few things that can go wrong:
  • Randomization functions that use values we can predict if we know the algorithm
  • Hard-coded values such as passwords and private variables you can't change.
  • Publicly called functions which offer hidden functionality
  • Race conditions based on how requirements are calculated

Since this will be rather technical, require some setup and a lot of moving parts we will follow this blog via the video series below posting videos for relevant sections with a brief description of each.  I posted these a little bit ago but have not gotten a chance to post the blog associated with it.  Also note this series is turning into a full lab based blockchain exploitation course so keep a lookout for that.

In this first video you will see how data about your project is readily available on the blockchain in multiple formats for example:
  • ABI data that allows you to interact with methods.
  • Actual application code.
  • Byte code and assembly code.
  • Contract addresses and other data.

 Lab Video Part 1: Blockchain OSINT: 



Once you have the data you need to interact with a contract on the blockchain via some OSINT how do you actually interface with it? That's the question we are going to answer in this second video. We will take the ABI contract array and use it to interact with methods on the blockchain via Web3.js and then show how this correlates to its usage in an HTML file

Lab Video Part 2: Connecting to a Smart Contract: 




Time to Exploit an Application:

Exploit lab time, I created an vulnerable application you can use to follow along in the next video. Lab files can be downloaded from the same location as the last blog located below. Grab the AuthorizationLab.zip file:

Lab file downloads:



Ok so you can see what's running on the blockchain, you can connect to it, now what?   Now we need to find a vulnerability and show how to exploit it. Since we are talking about privacy in this blog and using it to bypass issues. Lets take a look at a simple authorization bypass we can exploit by viewing an authorization coding error and taking advantage of it to bypass restrictions set in the Smart Contract.  You will also learn how to setup a local blockchain for testing purposes and you can download a hackable application to follow along with the exercises in the video..

Lab Video Part 3:  Finding and hacking a Smart Contract Authorization Issue: 





Summary:

In this part of the series you learned a lot, you learned how to transfer your OSINT skills to the blockchain. Leverage the information found to connect to that Smart Contract. You also learned how to interact with methods and search for issues that you can exploit. Finally you used your browsers developer console as a means to attack the blockchain application for privilege escalation.

Continue reading


  1. Hacker Tools Hardware
  2. Hack App
  3. Hacker Tools Software
  4. Pentest Tools Kali Linux
  5. Hacking Tools
  6. Hacker Tools Free Download
  7. World No 1 Hacker Software
  8. Hacking Tools Download
  9. Best Hacking Tools 2019
  10. Pentest Tools Online
  11. Pentest Tools For Ubuntu
  12. Hack Tool Apk No Root
  13. Hack Tools For Games
  14. Hacking Tools Mac
  15. Hacker Tools Github
  16. Hack Tools
  17. Hacking Apps
  18. Hack Tools For Games
  19. Hacker Tools 2019
  20. Pentest Tools For Android
  21. Tools 4 Hack
  22. New Hack Tools
  23. Pentest Automation Tools
  24. Hack Tools Online
  25. Beginner Hacker Tools
  26. Hacking Tools Download
  27. Pentest Tools Tcp Port Scanner
  28. Hack Tools Github
  29. Hack Tools Github
  30. Hack Tool Apk
  31. Hacker Tools 2020
  32. Pentest Tools Open Source
  33. Hacking Tools Mac
  34. Hacking Tools Free Download
  35. Pentest Tools Website Vulnerability
  36. Pentest Tools Free
  37. Hacking Tools Free Download
  38. Best Hacking Tools 2019
  39. Hacking Tools Windows 10
  40. Game Hacking
  41. Termux Hacking Tools 2019
  42. Hack Rom Tools
  43. Pentest Tools For Mac
  44. Android Hack Tools Github
  45. Wifi Hacker Tools For Windows
  46. Pentest Tools Online
  47. Hacker Tools 2019
  48. Hack Tools
  49. Pentest Tools For Ubuntu
  50. Pentest Tools Free
  51. Hacker
  52. Hacker Tools
  53. Pentest Recon Tools
  54. Hacking Tools For Windows Free Download
  55. Hack Tools
  56. Hacking Tools Free Download
  57. Hack Rom Tools
  58. Hacker Tools Free
  59. Hacking Tools 2020
  60. Growth Hacker Tools
  61. Pentest Tools Nmap
  62. Pentest Tools Android
  63. Hacking Tools For Windows Free Download
  64. Hacking Tools Windows
  65. Pentest Tools Bluekeep
  66. Pentest Tools Windows
  67. Hacker Tools 2019
  68. Nsa Hack Tools
  69. Hacker Tools 2019
  70. Pentest Automation Tools
  71. Hack Apps
  72. Pentest Tools For Ubuntu
  73. Hacking Tools Online
  74. Hack Tool Apk
  75. Pentest Tools Apk
  76. Hacker Tools For Windows
  77. Hack Rom Tools
  78. Hacker Tools
  79. Pentest Tools Open Source
  80. Computer Hacker
  81. Best Hacking Tools 2020
  82. Pentest Automation Tools
  83. New Hack Tools
  84. Hacking Tools 2020
  85. Blackhat Hacker Tools
  86. Hack Tool Apk
  87. Hacking Tools For Kali Linux
  88. Hacker Tools Linux
  89. Hack Tool Apk No Root
  90. Pentest Tools Linux
  91. Hacking Tools Download
  92. Hacking Tools Pc
  93. Top Pentest Tools
  94. Hacking Apps
  95. Pentest Tools Subdomain
  96. Nsa Hacker Tools
  97. Hacker Tools Software
  98. Hacking Tools Download
  99. Hacking Tools Pc
  100. Pentest Tools Nmap
  101. Ethical Hacker Tools
  102. Hack Tools For Ubuntu
  103. Best Hacking Tools 2020
  104. Hack Tools Github
  105. Hack Tools For Mac
  106. Hack Tools For Pc
  107. Pentest Tools Url Fuzzer
  108. Pentest Tools Port Scanner
  109. Pentest Tools Linux
  110. Hacker Tools For Pc
  111. Hacking Tools Download
  112. Hacker Tools Mac
  113. Hacking Tools Name
  114. Hack Apps
  115. Game Hacking
  116. How To Make Hacking Tools
  117. Hack Tools Online
  118. Pentest Tools Port Scanner
  119. Hacker Tools Software
  120. Hacking Tools Mac
  121. Hacker Tools For Pc
  122. How To Make Hacking Tools
  123. Hacking Tools Online
  124. Hack Tool Apk
  125. Install Pentest Tools Ubuntu
  126. Pentest Tools For Mac
  127. Pentest Tools Tcp Port Scanner
  128. Hacker Tools Github
  129. Tools Used For Hacking
  130. Pentest Tools Download
  131. Pentest Tools Free
  132. Hack Website Online Tool
  133. Hacker Tools Apk Download
  134. Hacking Tools And Software
  135. Pentest Tools Free
  136. Hacker Tools Software
  137. Best Hacking Tools 2019
  138. Pentest Box Tools Download
  139. Pentest Tools For Mac
  140. Hack Tools 2019
  141. Hacking Tools Free Download
  142. Kik Hack Tools
  143. Pentest Box Tools Download
  144. Pentest Tools Open Source
  145. Hacker Tools
  146. How To Make Hacking Tools
  147. Pentest Tools For Windows
  148. Termux Hacking Tools 2019
  149. Termux Hacking Tools 2019
  150. Hackrf Tools
  151. World No 1 Hacker Software
  152. Hacker Tools
  153. Hack App
  154. Pentest Tools Framework
  155. Hacking Tools Software
  156. Pentest Tools Free
  157. Nsa Hack Tools Download
  158. Hacker Tools Online
  159. Hacking Tools For Mac
  160. Hack Tools
  161. Hacking Tools Usb
  162. Hacking Tools For Games
  163. Hack Tools Online
  164. Best Hacking Tools 2019
  165. Pentest Tools Website Vulnerability
  166. World No 1 Hacker Software
  167. Install Pentest Tools Ubuntu

Dotnet-Interviews