Broken Browser
  • Menu ▾
    • Browser Workshop
    • Musings
    • About
  • Browser Workshop
  • Musings
  • About

WPF/XBAP Pentest Findings

2009-06-26 :: browser-workshop :: misc

A collection of findings from a security assessment of WPF browser-hosted applications (XBAP). Four distinct issues were identified across DoS, crash, and UXSS categories.

[Read more]

Silverlight 3 DoS — Uncaught Exception in CallMethod

2009-06-15 :: browser-workshop :: dos

Accessing the CallMethod function on the Silverlight bridge object without arguments or in an unexpected state raises an uncaught exception that crashes the browser.

[Read more]

IE DoS — dataTransfer.setData with Invalid URL

2009-06-12 :: browser-workshop :: dos

Setting an invalid URL in event.dataTransfer.setData("URL", ...) during a drag operation crashes IE. The !exploitable analyzer rated this EXPLOITABLE — EIP is changed, and the DEP access violation...

[Read more]

Mark-of-the-Web + Flash XML to Read Local Files

2009-06-11 :: browser-workshop :: info-disclosure

A local HTML file carrying a Mark-of-the-Web (MotW) comment runs in the Internet Zone rather than the Local Machine Zone. Flash files embedded in that page inherit the Internet Zone context, and...

[Read more]

XBAP Clipboard Hijacker

2009-06-09 :: browser-workshop :: misc

A WPF XBAP (browser-hosted application) running in Internet Explorer could access the system clipboard when it should not have been able to. The compiled clipboard_hijacker.xbap demonstrates reading...

[Read more]

XAML Hyperlink Cross-Origin Sub-Frame Navigation

2009-06-08 :: browser-workshop :: misc

A WPF XAML Hyperlink element with a TargetName can navigate an iframe by name — including iframes belonging to other domains — bypassing the "Allow subframes to navigate across different domains"...

[Read more]

Pop-up Blocker Bypass via Windows Media Player 12

2009-06-03 :: browser-workshop :: popup-bypass

The launchURL method of the Windows Media Player 12 ActiveX object bypasses IE's pop-up blocker on Windows 7. The same method with WMP 11 on XP/Vista did not reproduce, suggesting a regression...

[Read more]

Resident Script via Cached IFrame open Method

2009-05-28 :: browser-workshop :: resident

Saving a reference to an iframe's open method in an external popup window, then reloading the main page (destroying the iframe), leaves the cached open callable. Calling it with "about:blank" and...

[Read more]

IE8 DoS — Cached Image Constructor After Iframe Reload

2009-05-27 :: browser-workshop :: dos

Saving a reference to an iframe's Image constructor, reloading the iframe (which destroys the original context), and then calling new cachedImage() from the parent crashes IE8 with a...

[Read more]

UXSS via Silverlight Cached Method InvokeSelf

2009-05-22 :: browser-workshop :: uxss

Caching a reference to an iframe's execScript method, navigating the iframe to a cross-origin page, and then invoking the cached method via Silverlight's ScriptObject.CallMethod bypasses the...

[Read more]

Silverlight 3 DoS — Destroy Control While Update Dialog Is Open

2009-05-15 :: browser-workshop :: dos

Destroying the Silverlight control (via outerHTML replacement) while the Silverlight update modal dialog is open crashes the browser regardless of how the dialog is closed afterward.

[Read more]

Silverlight 3 DoS — Destroy Object During Install Dialog

2009-05-15 :: browser-workshop :: dos

Destroying the Silverlight OBJECT element via outerHTML while the install dialog is present (and the main thread is frozen) crashes the browser. The onMainThreadFrozen helper detects when the main...

[Read more]

Silverlight 3 DoS — Source Change on FullScreenChanged Event

2009-05-13 :: browser-workshop :: eop-rce

Changing the Source property of the Silverlight object when the OnFullScreenChanged event fires crashes the browser. The new source value does not matter — even an empty string is sufficient.

[Read more]

Silverlight 3 DoS — SplashScreenSource Null Pointer Dereference

2009-05-12 :: browser-workshop :: eop-rce

Using the SplashScreenSource parameter with the same .xap file as the source parameter in a Silverlight 3 control triggers a null pointer dereference on load.

[Read more]

Flash getURL Cross-Origin Sub-Frame Navigation

2009-04-21 :: browser-workshop :: misc

Flash's getURL method can navigate frames by name, including frames that belong to other domains. By assigning a name to a cross-origin iframe through JavaScript (which was apparently allowed at the...

[Read more]

IE8 DoS — XAML insertObject Crash

2009-04-15 :: browser-workshop :: dos

Loading a XAML file that uses the insertObject mechanism while an empty iframe is present triggers a crash in IE8.

[Read more]

IE8 XSS Filter Bypass via Injected Referrer Link

2009-04-13 :: browser-workshop :: misc

The IE8 XSS filter skips its checks when the request's referrer is the same domain as the target URL. By injecting a link in the first request that points back to the same vulnerable endpoint — with...

[Read more]

IE Resident Script via createElement OBJECT Self-Reference

2009-04-06 :: browser-workshop :: resident

Creating an <object type="text/html"> element with createElement and then storing a reference to that element inside its own document's window keeps the element alive indefinitely — even after the...

[Read more]

IE8 defineProperty Intercepts Internal Dialogs for Address Bar Spoofing

2009-04-01 :: browser-workshop :: misc

IE8's Object.defineProperty can override members that IE's own internal dialogs access on the page's document. When the Print Preview dialog reads document.documentElement, our getter fires — and...

[Read more]

UXSS — IE8 defineProperty Accessor Survives Cross-Origin Redirect

2009-03-27 :: browser-workshop :: uxss

This builds on the delayed-redirect variable injection (entry #23) by using Object.defineProperty to install a getter accessor on a cross-origin window's document object. The accessor persists...

[Read more]

Pseudo-UXSS — Injecting Variables into a Cross-Origin Window via Delayed Redirect

2009-03-27 :: browser-workshop :: uxss

Opening a new window to a same-domain page that performs a server-side redirect to a different domain leaves a window of time during which JavaScript variables set on the new window persist — even...

[Read more]

IE8 DoS — Prototype Property Crash on Properties Dialog

2009-03-26 :: browser-workshop :: dos

Setting any property on the prototype of any HTML element type causes IE8 to crash when the File → Properties dialog is opened. The crash can be triggered without user interaction by using ExecWB to...

[Read more]

Resident Script via Self-Pointing htmlFile

2009-03-23 :: browser-workshop :: resident

A script running inside an htmlFile ActiveX document can be made resident simply by storing a reference to the htmlFile object inside its own window. This creates a circular reference that prevents...

[Read more]

Resident Script via WebSlice XAML Frame

2009-03-18 :: browser-workshop :: resident

A setInterval placed inside a XAML Frame element (loaded via a WebSlice) keeps running even after the WebSlice is closed, because the PresentationHost.exe process remains resident in memory. The...

[Read more]

DoS — X-Frame-Options Reload Crash

2009-03-10 :: browser-workshop :: dos

Loading a page with an X-Frame-Options header inside an iframe and triggering a reload crashes IE8.

[Read more]

DoS — X-Frame-Options Location Navigation Crash

2009-02-26 :: browser-workshop :: dos

Navigating an iframe's location to a page with an X-Frame-Options header via script crashes IE.

[Read more]

DoS — htmlFile with Invalid Protocol and WMP launchURL

2009-02-24 :: browser-workshop :: dos

Two denial-of-service conditions in IE7 and IE8 triggered through the htmlFile ActiveX object.

[Read more]

Address Bar Spoofing and About:Tabs Exploitation via res:// Domain

2009-02-18 :: browser-workshop :: address-bar-spoof

This builds on the offsetParent UXSS (entry #16) to reach the res://ieframe.dll zone. Once inside that zone, two things become possible: spoofing the address bar using dnserror.htm#arbitrary-url, and...

[Read more]

UXSS via offsetParent as frameElement

2009-02-18 :: browser-workshop :: uxss

I was lucky to find this one. A page with a !DOCTYPE declaration exposes document.all[0] as the DOCTYPE node, and that node's offsetParent is the hosting iframe element — even when that iframe...

[Read more]

RCE via Windows Desktop Search

2009-02-16 :: browser-workshop :: eop-rce

Windows Desktop Search opened HTML result pages in a context where navigating location to a local executable path would launch that executable. The fix required restricting the zone or navigation...

[Read more]

UXSS via setCapture and offsetParent (Superseded)

2009-02-11 :: browser-workshop :: uxss

This was an early version of a cross-origin technique later superseded by entry #16. The approach loads a non-HTML file (feeds XML, MHT, SWF, XAML, etc.) into an iframe nested inside a cross-origin...

[Read more]

IE8 X-Frame-Options Header Bypass

2009-02-06 :: browser-workshop :: misc

Two approaches bypassed the X-Frame-Options: DENY header in IE8. The first uses a XAML Frame element as the embedding container; the second delays the insertion of an HTML OBJECT element via...

[Read more]

IE8 RCE via About Dialog _unspecifiedFrame (IE8 Variation)

2008-12-31 :: browser-workshop :: eop-rce

This is the IE8 variation of the _unspecifiedFrame About dialog attack. The IE7 version used a direct window.open to hijack the frame; IE8 blocked that approach, so the method switches to Windows...

[Read more]

DoS: Reusing a Cached window.open Reference After Navigation

2008-12-20 :: browser-workshop :: dos

While revisiting the cached window.open technique, I found that invoking the stale method twice in quick succession — after it had already been used to navigate the ghost iframe — was enough to crash...

[Read more]

Heap Spray Variations — ADO Object and Tabular Data Control

2008-12-17 :: browser-workshop :: misc

These are two variations of a heap spray technique, exploring different data-binding sources in place of the original XML island. Both bind an iframe's src through the datasrc/datafld mechanism, with...

[Read more]

IE8 DoS — Feeds XML Inside Iframe with Nested Iframe

2008-12-03 :: browser-workshop :: dos

Loading a feeds-formatted XML file inside an iframe, then overwriting its contents with another iframe via innerHTML, and finally clicking inside the new inner iframe crashes IE8.

[Read more]

IE8 WinOOB 1053535 Variation

2008-11-25 :: browser-workshop :: misc

This entry is a variation of WinOOB 1053535, archived as a compressed proof-of-concept. The reproduction steps and source were preserved in the zip file rather than as standalone HTML. The core issue...

[Read more]

IE7 DoS via ExecWB OLECMDID_GETZOOMRANGE Missing Argument

2008-11-18 :: browser-workshop :: dos

Calling ExecWB with OLECMDID_GETZOOMRANGE without the required fourth argument (a pointer) crashes IE7.

[Read more]

IE7 RCE via About Dialog _unspecifiedFrame

2008-11-14 :: browser-workshop :: eop-rce

This one surprised me with how simple the entry point was. IE's About dialog opens a link in a window named _unspecifiedFrame. If an attacker pre-registers that window name, the About dialog's...

[Read more]

UXSS via CreateLink execCommand Across Origins

2008-11-13 :: browser-workshop :: uxss

A close companion to the InsertImage finding, this one uses the CreateLink execCommand. By placing the focus in a cross-origin iframe and then invoking the command from a same-domain hidden iframe,...

[Read more]

Overriding document Methods to Fool IE Internal Dialogs

2008-11-12 :: browser-workshop :: misc

IE's internal dialogs (Find, Print Preview, Properties, etc.) interact with the page's document object — and since JavaScript can override that object and its members, those dialogs end up calling...

[Read more]

UXSS via InsertImage execCommand Across Origins

2008-11-11 :: browser-workshop :: uxss

This one surprised me. The document.execCommand('InsertImage', true) call, when triggered from an iframe on a different origin, ends up inserting content into the parent document rather than the...

[Read more]

IE8 WinOOB 982379 — setCapture to Read WBControl Path

2008-11-06 :: browser-workshop :: misc

After playing around for a while with non-HTML content in iframes, I noticed that when IE instantiates a WebBrowser control to render something like a Flash file, that WBControl ends up as an...

[Read more]

IE8 Resident Script via Cached execScript (WinOOB 1004580)

2008-11-04 :: browser-workshop :: resident

This one took some time to get right. The trick is keeping a script alive even after the main page navigates away, by caching an execScript reference from an iframe — but the catch is that the cache...

[Read more]

IE8 WinOOB 1032522 — Flash GetURL with url: Protocol

2008-11-04 :: browser-workshop :: misc

A short one. While exploring what Flash's getURL method would accept as a target, I found that embedding a url:file:/// scheme inside the redirect string caused IE8 to handle the navigation in an...

[Read more]

IE8 XSS Filter Bypass via META Redirect

2008-10-24 :: browser-workshop :: misc

This was a variation on the earlier IE8 XSS filter bypass, this time using a <meta http-equiv="refresh"> redirect instead of navigating an inner iframe's location property. The filter checked whether...

[Read more]

Sandbox LiveLabs: Script Execution, Freezers, and Style Parser Escapes

2008-10-23 :: browser-workshop :: misc

These proof-of-concepts were written to be pasted into the LiveLabs sandbox environment (an internal IE testing harness at http://131.107.155.233/Samples/genericSample.aspx). The sandbox was supposed...

[Read more]

DoS: IE8 Crashes via createPopup and SCRIPT DEFER

2008-10-21 :: browser-workshop :: dos

While testing variations of another bug on IE8, I found two separate crash paths involving window.createPopup() and deferred scripts. Both were straightforward to trigger and required no user...

[Read more]

DoS: IE7 Crashes When Writing Flash via innerHTML on ONKEYPRESS

2008-09-26 :: browser-workshop :: dos

A quick one. Writing a Flash <object> or <embed> tag into the DOM via innerHTML during the ONKEYPRESS event would crash IE7 if the key was pressed quickly enough — typically two or three rapid...

[Read more]

MSRC 7930 Variation: Bypassing the October MSXML Patch via Redirect in DTD

2008-09-25 :: browser-workshop :: misc

This was a variation on an MSXML cross-domain scripting bug (MSRC 7930) originally found by Gregory Fleischer, who used XML parameter entities in a DTD to exfiltrate content from a remote URL into a...

[Read more]
Page 8 of 11
← Newer 1234567891011 Older →
© 2026 Broken Browser