
#Colorpicker firefox code#
Let’s start with search and grepīeing equipped with the right kind of knowledge and the crave for a critical Firefox bug under my name, I started using our code search more smartly. What’s notable here, is that this bypasses the sandbox.Īs an aside the page behind about:cache is actually implemented using C++ that emits HTML-ish markup. I suppose most of you will by now understand that we are looking for Cross-Site Scripting (XSS) vulnerabilities in the browser interface. Most of the interacive parts are written in JavaScript.



Whether those internal pages are written in (X)HTML or XUL. There are also some newer pages like about:crashes, which holds previously submitted (or unsubmitted) crash reports. To get a better understanding of elements like, or, we will be able to look at the XUL Reference on MDN – XUL is scriptable! A tag exists and it may contain JavaScript. While still in our information gathering phase, we will not go too deep, but make note of two observations: – XUL is not HTML. Inspecting the source code we also already see some markup that screams both XML as well as XML-dialect. As a proof-of-concept, we may alert(Components.stack), which gives us a stringified JavaScript call stack – notably this is a JavaScript object that is left undefined for normal web content. We can also open the developer console and poke around with the obscure objects and functions that are available for JavaScript in privileged pages. Now either look at the source code using the Developer Tools (right-click “Inspect Element”) or view the source code of Firefox Nightly using the source code search at. By opening about:preferences in a new tab (I won’t be able to link to it for various good reasons). Let’s take a look at some Firefox internal pages. Let’s look into Firefox, to find some remnants of XUL, by visiting some internal pages. Aptly named after an evil spirit, we will see that XUL still haunts us today. Firefox has almost moved from XUL and re-implemented many parts in HTML. Time went by and XUL did not take off as a widely-recognized standard for cross-platform user interfaces.
#Colorpicker firefox movie#
Jokingly, XUL was also a reference to the classic 1984 movie Ghostbusters, in which an evil deity called Zuul (with a Z) possesses innocent people. The younger folks might want to read upon Wikipedia or watch the amazing Movie “Code Rush”, which is available on ). XUL was created as the XML User Interface Language at Netscape (the company that created the origins of the Mozilla source code. This folly marks the hour of birth for XUL. While XHTML was the clear winner and successor for great web applications, it was obvious that XML would make a great user interface markup language to create a powerful cross-platform toolkit dialect. In fact, it was so much better than its warty and unparseable predecessor HTML. It was the year 1997, and people thought XML was a great idea.

Old people, browser hackers or Mozilla fanboys, might use this as an opportunity to lean back and stroke their mighty neckbeard, as they have heard all of this before (This is the part, where we reduce the lighting and shine a flashlight into my face) The talk discusses past vulnerabilities and will also suggest mitigations that benefit Single Page Applications and other platforms that may suffer from DOM-based XSS, like Electron. This allows for cross-platform exploits of high reliability. With an Cross-Site Scripting (XSS) in the user interface attackers can execute arbitrary code in the context of the main browser application process. This talk will look into injection flaws in the user interface of Mozilla Firefox, which is implemented in JS, HTML, and an XML-dialect called XUL. Abstract:īrowsers are complicated enough to have attack surface beyond memory safety issues. This is the blog post version of my presentation form OWASP Global AppSec in Amsterdam 2019.
