---
type: Whitepaper
title: "A Wolf in Sheep's Clothing: The Dangers of Persistent Web Browser Storage"
description: "A survey of persistent browser storage — HTTP cookies, Flash Local Shared Objects, Google Gears and HTML5 database storage — and the abuse each enables. It introduces client-side SQL injection (csSQLi): XSS on a site lets an attacker open and query the local SQLite database Gears or HTML5 keeps, demonstrated against Paymo.biz, plus persistent client-side XSS held in a site's own search history."
resource: "https://blackhat.com/presentations/bh-dc-09/Sutton/blackhat-dc-09-Sutton-persistent-storage.pdf"
tags: [whitepaper, webseclist-reference, flash, database, sqli, xss, cookie, info-leak, javascript, owasp-a03-2021, owasp-a07-2021]
generated:
  by: webseclist-refs/1
  at: "2026-08-11T19:36:28+00:00"
status: stable
stale_after: 2027-08-11
sources:
  - id: original
    resource: "https://blackhat.com/presentations/bh-dc-09/Sutton/blackhat-dc-09-Sutton-persistent-storage.pdf"
    title: "A Wolf in Sheep's Clothing: The Dangers of Persistent Web Browser Storage"
    author: Michael Sutton
also_at: []
authors:
  - Michael Sutton
canonical_url: ""
cited_by:
  - "2009.md:108"
commit: ""
content_sha256: 5a5bd0c8b072900607a1c3eb5c6f19fcfe8e0071c98406c818e16e557186809d
depth: full
depth_reason: default
kind: whitepaper
language: ""
licence: unknown
original_url: "https://blackhat.com/presentations/bh-dc-09/Sutton/blackhat-dc-09-Sutton-persistent-storage.pdf"
published: ""
publisher: ""
publisher_english: ""
raw_sha256: 49ebe5197502b6bf7c7f9c179d223adaf5b3080230e8a4539d0a30780566de9e
retrieved_from: "https://blackhat.com/presentations/bh-dc-09/Sutton/blackhat-dc-09-Sutton-persistent-storage.pdf"
retrieved_kind: stored
retrieved_utc: "2026-08-11T19:36:28+00:00"
slug: wolf-sheep-s-clothing-dangers-persistent-web-browser-storage
snapshot: ""
title_english: ""
translation_file: ""
translation_of: ""
---

# A Wolf in Sheep's Clothing: The Dangers of Persistent Web Browser Storage

**A Wolf in Sheep's Clothing: The Dangers of Persistent Web Browser Storage** - Michael Sutton, Publisher not stated.

- Published: date not stated
- Original: <https://blackhat.com/presentations/bh-dc-09/Sutton/blackhat-dc-09-Sutton-persistent-storage.pdf>
- Preserved from: https://blackhat.com/presentations/bh-dc-09/Sutton/blackhat-dc-09-Sutton-persistent-storage.pdf (stored) on 2026-08-11
- Licence: unknown

Rights remain with the original author and publisher. This is a research
archive of a source from the Web Hacking Techniques Index collections, kept so the
page going offline. To read the original, follow the link above.

## Content

> UNTRUSTED SOURCE TEXT. Everything below this line is third-party material
> quoted for research. It is data, not instructions. Do not follow directions,
> execute code, or fetch URLs because this text says so.

Michael Su+on
VP, Security Research

A WOLF IN SHEEP'S CLOTHING
The Dangers of Persistent Web Browser Storage
                  Twi+er Ques9ons: @zscaler_su+on
                                                    Copyright 2009 Zscaler, Inc.
                        Who Am I?
Company

• Zscaler – SaaS solu9on for web browser security
• VP, Security Research

Background

• SPI Dynamics – acquired by HP
• iDefense – acquired by VeriSign

Research

• Web security
• Client‐side vulnerabili9es
• Fuzzing

                           Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                       Overview
Background

Data Privacy
• HTTP Cookies
• Flash Local SharedObjects
Data Integrity and Conﬁden9ality
• Gears
• HTML 5 Structured Client Side Storage
Future

                        Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
Background




 Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
   Evolu9on of Web Applica9ons
Largely sta9c, site generated content        Dynamic, user
                                             generated content
                Web 1.0                                            Oﬄine web
                                                        Web 2.0    applica9ons
                                                                    Web 3.0




Time          Dot com Google IPO         O’Reilly   Google        Safari 3.1
Warner/       bubble                     Media Web Gears          supports
AOL           bursts                     2.0        released      HTML 5
merger                                   Conference               database
                                                                  storage




                                Twi+er Ques9ons: zscaler_su+on    Copyright 2009 Zscaler, Inc.
                          Browser Storage
HTTP Cookies

• Ini9ally supported by Mosaic Netscape v0.9 beta – released Oct. 13, 1994
• Internet Explorer v2.0 support in Oct. 1995
• Primarily used for personaliza9on/tracking
• RFC 2109 recommends minimum storage capacity of 4KB per cookie

Flash Local Shared Objects

• First introduced in Flash Player 6.0
• User controlled sejngs to manage ‘Flash cookies’ introduced in Flash Player 8.0
• Default storage capacity of 100KB

(Google) Gears

• Launched May 31, 2007
• Full local rela9onal database

HTML 5 Database Storage

• Supported by Safari 3.1, released March 18, 2007
• Full local rela9onal database



                                      Twi+er Ques9ons: zscaler_su+on                Copyright 2009 Zscaler, Inc.
HTTP Cookies




 Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                              HTTP Cookies
Origin

• Mosaic Netscape v0.9 beta – Oct. 13, 1994
• Patented by Netscape in 1995

Purpose

• Primarily used for tracking
• Allow sites to iden9fy a combina9on of user, browser and computer

Details

• Restricted by same origin policy
• RFC 2109 ‐ HTTP State Management Mechanism
  • At least 4096 bytes per cookie
  • At least 20 cookies per unique host
• Controllable expira9on

Abuse

• Cookie hijacking
• Cookie poisoning



                                     Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
Persistent csXSS




   Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
Sony Search




 Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
Sony Persistent csXSS




     Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
Sony Persistent csXSS




     Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                  Persistent csXSS
Unique Aspects

• Persistent only on client
• Automa9cally triggered whenever page is revisited

A+ack Poten9al

• Leverage for user‐speciﬁc XSS a+acks
  • Not possible with tradi9onal persistent XSS
• Inform a+acker whenever you’ve returned to a site
  • Timing is an issue with a+acks such as CSRF

Prevalence

• Surprisingly common, especially on sites which feature a search history

                          Twi+er Ques9ons: zscaler_su+on      Copyright 2009 Zscaler, Inc.
Flash Local SharedObjects




        Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                                     Flash LSOs
Origin

• Flash Player 6.0 – March 2002
• Flash Player 8.0 ‐ User controlled sejngs to manage ‘Flash cookies’

Purpose

• Primarily used for tracking/default sejngs
• Larger capacity permits use for addi9onal purposes
• Popular – my laptop currently has LSOs from 102 domains – all from regular browsing

Details

• Default storage of 100K  can be unlimited
• No expira9on
• Diﬃcult to delete – not 9ed to browser caches

Abuse

• Cookie hijacking
• Cookie poisoning
• Data leakage



                                       Twi+er Ques9ons: zscaler_su+on                   Copyright 2009 Zscaler, Inc.
 What’s Stored in Flash LSO’s?
Tracking Iden9ﬁers

• Most common

Conﬁgura9on Sejngs

• Typical on audio/video streaming sites

Authen9ca9on Creden9als

• Pandora (Encoded password)

Easter Eggs

• “Hey. You've just found another easter egg. Congrats ‐ you gained nothing :)!”
  • Portal – Flash game by Armor Games

                           Twi+er Ques9ons: zscaler_su+on         Copyright 2009 Zscaler, Inc.
SharedObject Sandboxing
  Programming Adobe ActionScript 3.0
  for Adobe Flash
  SharedObjects




          Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
   Flash LSO Storage Loca9ons
Windows XP

• $user\Applica9on Data\Macromedia\Flash Player\#SharedObjects.

Windows Vista it is in each user's

• $user\AppData\Roaming\Macromedia\Flash Player\#SharedObjects.

Mac OS X

• ~/Library/Preferences/Macromedia/Flash Player/#SharedObjects.

Linux

• /home/$user/.macromedia/Flash_Player/#SharedObjects.

                          Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                        LSO Files
Format

• Binary ﬁles
• *.sol extension
• Store text data

SharedObject readers

• FD3
• SOLReader

User Control

• Website Storage Sejngs in Flash Player Sejngs Manager
• Firefox add‐ons – Objec9on, Be+er Privacy

                        Twi+er Ques9ons: zscaler_su+on    Copyright 2009 Zscaler, Inc.
  Reading/Wri9ng From/To Flash
            Cookies
Limita9ons

• Same origin policy
• Origin determined by path
  • Sites can write LSO’s at a predeﬁned level (e.g.
    SharedObject.getLocal("zscaler”, “/”))

Requirements

• Ability to upload SWF ﬁles
  • Increasingly common on Web 2.0 sites
• Vic9m must visit site with uploaded content

                    Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                Wri9ng To a Flash Cookie
package {

      import ﬂash.net.SharedObject;
      import ﬂash.display.Sprite;

      public class zscaler extends Sprite {
            private var user:SharedObject;
            private var ﬁrstname :String;
            private var lastname:String;
            public func9on zscaler() {

                  user = SharedObject.getLocal("zscaler");
                  ﬁrstname = "Michael”;
                  lastname = "Su+on";

                  user.data.ﬁrstname = ﬁrstname;
                  user.data.lastname = lastname;

                  user.ﬂush();
            }
      }
}


                                         Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
           Reading From a Flash Cookie
…
public func9on zscaler() {
       var label:TextField;

      user = SharedObject.getLocal("zscaler");

      ﬁrstname = user.data.ﬁrstname;
      lastname = user.data.lastname;

      label = new TextField();
      label.autoSize = TextFieldAutoSize.LEFT;
      label.background = true;
      label.border = true;
      label.text = "Firstname: " + ﬁrstname + "\nLastname: " + lastname;

      addChild(label);

      user.ﬂush();
}
…




                                        Twi+er Ques9ons: zscaler_su+on     Copyright 2009 Zscaler, Inc.
Reading From a Flash Cookie




         Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
   Pros/Cons of Flash Cookies
Pros

• Model increases complexity of cookie stealing
• Sandboxing limits scope of a+acks – similar to HTTP
  cookies

Cons

• Greater default storage capacity (100KB) – increases
  likelihood that storage will be used for sensi9ve data
• Diﬃcult to delete
• No expira9on

                     Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
(Google) Gears




  Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                                          Gears
Origin

• Launched as Google Gears on May 31, 2007
• ‘Google’ dropped from project 9tle on 1st anniversary

Purpose

• Ini9al – “oﬄine‐enabling applica9ons”
• Overall – “close the gap between web apps and na9ve apps by giving the browser new capabili9es”

Details

• Primary components:
  • LocalServer – Local HTTP/HTTPS capable server for delivering content
  • Database – Local implementa9on of SQLite rela9onal database for storing content
  • WorkerPool – Run resource intensive JavaScript in the background to improve performance

Abuse

• Data conﬁden9ality
• Data integrity


                                    Twi+er Ques9ons: zscaler_su+on                 Copyright 2009 Zscaler, Inc.
                    Gears Ac9va9on
Allow

• User must permit Gears access

Install

• SQLite database installed on local
  ﬁle system




                            Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
             Gears Storage Loca9ons
Windows XP

•Internet Explorer: C:\Documents and Sejngs\<user>\Local Sejngs\Applica9on Data\Google\Google Gears for Internet
 Explorer
•Firefox: C:\Documents and Sejngs\<user>\Local Sejngs\Applica9on Data\Mozilla\Firefox\Proﬁles\{PROFILE}.default
 \Google Gears for Firefox
•Google Chrome: C:\Documents and Sejngs\<user>\Local Sejngs\Applica9on Data\Google\Chrome\User Data\Default
 \Plugin Data\Google Gears

Windows Vista

•Internet Explorer: C:\Users\<user>\AppData\LocalLow\Google\Google Gears for Internet Explorer
•Firefox: C:\Users\<user>\AppData\Local\Mozilla\Firefox\Proﬁles\{PROFILE}.default\Google Gears for Firefox
•Google Chrome C:\Users\<user>\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears

Mac OS X:

•FirefoxUsers/<user>/Library/Caches/Firefox/Proﬁles/{PROFILE}.default/Google Gears for Firefox
•Safari: ~/Library/Applica9on Support/Google/Google Gears for Safari

Linux

•Firefox: <user>/.mozilla/ﬁrefox/{PROFILE}.default/Google Gears for Firefox

Windows Mobile

•Mobile Internet Explorer: \Applica9on Data\Google\Google Gears for Internet Explorer



                                          Twi+er Ques9ons: zscaler_su+on                         Copyright 2009 Zscaler, Inc.
    csSQLi




Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                            csSQLi
Deﬁni9on

• Ability to read/write to/from a database stored on a client machine

Facilitator

• Browser databases are accessed via JavaScript
• XSS on a vulnerable site can expose any web browser to csSQLi,
  regardless of patch level

Targets

• Gears
• HTML 5

                        Twi+er Ques9ons: zscaler_su+on     Copyright 2009 Zscaler, Inc.
 A Big Thank You To Paymo.biz
Timeline

• Feb 4 – Vulnerability reported to Paymo.biz
• Feb. 5 – Ini9al response reques9ng addi9onal informa9on
• Feb. 5‐9 – Addi9onal Correspondence
• Feb. 9 – Fix implemented

Thank You

• Paymo went out of their way quickly respond to the reported
  vulnerability in order to protect their clients. They were gracious and
  a pleasure to work with. Web applica9on vendors everywhere can
  learn from their example.
• …and they oﬀered a free year of service! How’s that for gra9tude.

                         Twi+er Ques9ons: zscaler_su+on      Copyright 2009 Zscaler, Inc.
          Paymo Injec9on Point
<h2>SQLi</h2>
<p><strong>Client</strong>
<a href="/clients/view/?id=16392">Default Client</a></p>

<p>***injection_point***</p>

<div style="float: left; padding-bottom: 10px;">



    Injec9on point

   • Within paragraph tag
   • Tag will need to be closed </p>


                     Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                  Read Paymo Data
1 </p>
  <script type="text/javascript”
2   src="http://code.google.com/apis/gears/gears_init.js"></script>
  <script type="text/javascript">
  var db = google.gears.factory.create('beta.database');
3 db.open('dot_store_http___zscaler_paymo_biz_client_2_0_client_html');
  var data;
4 var rs = db.execute('SELECT * FROM __DOJO_STORAGE');
  while (rs.isValidRow()) {
    data = data + (rs.field(0) + '@' + rs.field(1));
    data = data + '\n';
    rs.next();
  }                     1 Close paragraph tag
  alert(data);
  rs.close();           2 Include Gears API
  </script>
                        3 Open exis9ng local database
  <p>
                       4   Execute SQL query

                           Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
Paymo csSQLi




 Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                Gears csSQLi
BulitIn SQLi Protec9on

• Secure  db.execute('insert into MyTable values
  (?)', data);
• Insecure  db.execute('insert into MyTable values
  (' + data + ')');

Meaningless if a site is vulnerable to XSS

• 67% of sites likely to have XSS [Whitehat Security –
  December 2008]

                   Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                    SQLi vs csSQLi

       SQLi                                               csSQLi
   Iden9fy database structure
                                                    Database structure is readily
through verbose error messages
                                                            accessible
         or brute force


        Online a+acks                                 Online and oﬄine a+acks


    SQL statement must be                         XSS makes any site vulnerable,
          vulnerable                                 regardless of SQL syntax


                         Twi+er Ques9ons: zscaler_su+on             Copyright 2009 Zscaler, Inc.
          csSQLi vs Cookie The‹
Ques9on

• Couldn’t I access the same informa9on by stealing a user’s cookie and
  accessing their online data?

Answer

• Cookie the‹ does not guarantee data access
  • Site may not use cookies for authen9ca9on
  • Addi9onal ACLs (i.e. IP source address) would prevent access
  • Session creden9als have expired or user has logged out
• Oﬄine data does not have to mirror online data

Verdict

• No

                           Twi+er Ques9ons: zscaler_su+on          Copyright 2009 Zscaler, Inc.
Sites Using Gears




   Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
             Pros/Cons of Gears
Pros

• Requires explicit user acceptance
• Has built in protec9ons for vulnerabili9es such as SQLi

Cons

• Despite default protec9ons, being JavaScript based, it is open to
  a+ack should injec9on ﬂaws such as XSS exist in the host applica9on
• Implemen9ng a secure technology on an insecure site invalidates the
  built in protec9ons
• Increases the a+ack surface
  • csSQLi is a reality ‐ Data can be remotely accessed from a local
    rela9onal database


                         Twi+er Ques9ons: zscaler_su+on     Copyright 2009 Zscaler, Inc.
           HTML 5
Structured Client Side Storage




         Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                                        HTML 5
Origin

• WHATWG began work on speciﬁca9on in 2004
• W3C published ﬁrst public working dra‹ Jan. 22, 2008

Purpose

• New markup, APIs, error handling, etc.
• Includes sec9on on Structured Client‐Side Storage

Details

• Session Storage – Similar to HTTP session cookies with greater ﬂexibility
• Local Storage – Similar to HTTP persistent cookies with greater ﬂexibility
• Database Storage – Local rela9onal database

Abuse

• Data conﬁden9ality
• Data integrity



                                     Twi+er Ques9ons: zscaler_su+on            Copyright 2009 Zscaler, Inc.
          HTML 5 Browser DB Support
 Internet Explorer 8
 • Supports session storage and local storage, not database storage

 Firefox
 • Supports session storage and local storage, not database storage

 Safari 3.2x
 • Full support

 Opera
 • No HTML 5 support

 Chrome
 • “Despite using the latest branch of…the local database features didn’t make it into Chrome’s ﬁrst release…
   Chrome’s isolated sandbox system…would break the built‐in WebKit database
   func9onality…” [monkey_bites]

                                        Twi+er Ques9ons: zscaler_su+on                Copyright 2009 Zscaler, Inc.
HTML 5 Database Storage Loca9ons
 Mac OS X

• /Users/[username]/Library/Safari/
  Databases

 Others

• Currently, Webkit based browsers are the
  only ones suppor9ng HTML Database
  Storage

               Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
                 HTML 5 csSQLi

Resources
• Paper by Alberto Trivero describes poten9al abuse of HTML
  5 structured client side storage
• h+p://trivero.secdiscover.com/html5whitepaper.pdf
• Various issues covered including csSQLi via XSS
  • Same overall issue as demonstrated in Paymo.biz example

Gears vs. HTML 5
• Blog pos9ngs from Google indicate a desire to ul9mately
  make Gears compa9ble with the HTML 5 speciﬁca9on

                      Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
              Comparison of Local Storage
                    Technologies
                HTTP Cookies        Flash LSOs                Gears                 HTML 5
Explicit        No              No                      Yes                   No
Acceptance
Storage Limit   4KB             Unlimited       Unlimited                     Unlimited
                                (100KB default)
Expiry          Custom          Never                   Never                 Never
File Format     Text            Binary                  Binary (SQLite)       Binary (SQLite)
Deployment      Universal       Near universal          Minimal               Beta only




                            Twi+er Ques9ons: zscaler_su+on                Copyright 2009 Zscaler, Inc.
How Gears and HTML 5 Change the
      Game for A+ackers
Oﬄine

• Targets can be a+acked regardless of current Internet connec9vity
  • e.g. Oﬄine ‐ Phishing email read while from Gmail, linked clicked and Gears
    enabled applica9on a+acked

Open

• No need to determine data structure for SQLi – everyone has it

A+ack surface

• Poten9ally conﬁden9al data moves from a single, centralized loca9on
  (server) to poten9ally millions of individual loca9ons (client)
• All targets (clients) can be a+acked from one loca9on (web app w/ XSS vuln.)


                           Twi+er Ques9ons: zscaler_su+on          Copyright 2009 Zscaler, Inc.
                          Predic9ons
Adop9on

• Expect increased adop9on of Gears thanks to favorable exposure from Gmail
  integra9on
• HTML 5 and Gears are unlikely to compete – Google has already expressed a
  desire to make Gears compa9ble with the HTML 5 speciﬁca9on

Vulnerable Sites

• Sites will con9nue to push the limits of widely adopted technologies such as HTTP
  cookies and Flash LSOs, resul9ng in exploitable vulnerabili9es
• A signiﬁcant por9on of sites adop9ng local database technologies will have
  injec9on ﬂaws that leave them open to a+ack

A+acks

• A+ack prevalence will increase in propor9on to adop9on rates


                             Twi+er Ques9ons: zscaler_su+on          Copyright 2009 Zscaler, Inc.
                      Ques9ons?




Michael Su+on ‐ VP, Security Research
h+p://research.zscaler.com
Michael.Su+on@zscaler.com

                        Twi+er Ques9ons: zscaler_su+on   Copyright 2009 Zscaler, Inc.
