Articles
Spring break road trip - Palouse, Stonehenge, Skamania, Ape Caves
While most other families were sensibly sitting on a warm beach in Hawaii, I took my daughters on a road trip across Washington State for...
Children, devices, and going online. A guide to security and privacy.
This guide is meant to be a quick look at some of the risks facing you and your kid as they start going online with...
Building an SDL Program - Part 1 - Where to start?
I'm writing a series on building an SDL program, the plans, the unexpected, the gotchas, and the good stuff. Security Development Lifecycle (SDL) is a...
What's wrong with STEM and right with the Quadrivium?
So I've been touring middle schools in Seattle, a bunch of them, and one thing kept sticking out at me. I'd walk into these classrooms,...
Top ten photos from 2015
Ok, it was really difficult to take 8000 photos, down to 800 good ones, down to 100 really good ones, and pull out just 10...
Watching the Blood Red Super Moon Lunar Eclipse from Seattle
From April 2014 through September 2015 we have had four total lunar eclipses, a rare sequence not seen since 2003 and not to be seen...
Tofino BC Surfing and Milky Way
We've been wanting to trek up to Tofino, BC, on Vancouver Island, for many years, and we finally made it. I've not been to such...
confusables.js - Unicode confusables in javascript
The Unicode Confusables have long been of interest in testing security of applications and social engineering. I work with Unicode often in tools and testing,...
6th Annual Daddy Daughter Backpacking Trip
This year was our annual daddy-daughter backpacking trip that some good friends and I have been doing since our girls were five years old. This...
Who can afford immortality?
People thought it was neat when Amazon announced drone delivery. I think many of us don't realize or believe half of the technology headed our...
Are Surveillance Goals for Political Control?
The Washington Post has reported that the NSA is tracking location data for millions of mobile devices."Brad Smith, Microsoft legal counsel, said government snooping was...
On Global Surveillance
Back in 2001, I was just one of many warning that the PATRIOT Act gave broad authority to track people. This is what I wrote...
Unicode security testing library
Oftentimes, I want to break software, mostly Web applications, but occasionally platform-related, such as protocols or OS code. When it comes to testing string input...
Privacy in a Web of meta-consciousness
I often get asked by friends and family - how can I keep my personal information online and private at the same time? Is it...
URL Testing
URLs are a cornerstone protocol of the Internet and the Web, but they are often misunderstood, occasionally abused, and quite often manipulated during security testing. I've put...
Generating confusable, lookalike strings
The Unicode Consortium released a utility to generate confusable strings quite a while ago. Since I've seen people trying to create similar tools themselves recently,...
Unicode Normalization in URLs
In some contexts, normalizing a string means upper or lower-casing it. In Unicode "normalization" means something much different. The Unicode standard offers four "normalization" forms...
Testing charset encoding support in Web Browsers
Note: To jump straight to test page click here http://www.lookout.net/test/charsets/ascii-unsafe/Web browsers support a variety of character set encodings mostly for legacy reasons and backwards compatibility....
Testing ASCII-unsafe encodings in Web browsers
Note: To jump straight to test page click here http://lookout.net/test/charsets/ascii-unsafe/[UPDATE: Some feedback from Anne van Kesteren pointed to the fact that all browsers do support HZ-GB-2312,...
Testing registerProtocolHandler and the web+ scheme prefix
Note: jump straight to the test page for navigator.registerProtocolHandler and web+ if you'd rather...A URI (Uniform Resource Identifier) is easily the most recognizable protocol element...
IDNA2003, IDNA2008, domain and sub-domain registrations during the transitional period
To continue on with the discussion about THE RISKS OF USING “ESZETT” OR “SHARP S” (“SS”) IN DOMAIN NAME - this character is just one of...
The risks of using "Eszett" or "sharp s" ("ß") in domain names
With the transition from IDNA2003 to IDNA2008, there will be four characters that deviate in how they're handled. Meaning that when they are used in...
Many stops equal a U+002E full stop
In IDNA-aware (IDNA2003) applications, the "dot" character we see in domain names like www.example.com has several equals. Specifically the following characters are all equivalent under...
Abusing hyperlink auditing and the "ping" attribute in HTML
I just learned about this proposed feature of HTML which as Anne van Kesteren noted is not in HTML5 at the moment but might be...
Some browsers convert pipe "|" to colon ":" in the file scheme
I just thought this was odd, and may be exploited in cases where a security filter checks the string before the conversion takes place.Here are...
Special Unicode characters for testing, fuzzing, and controllingthe visual display of text
WARNING: Some of these characters may cause strange things to happen in your software.Of course, that's the point right? Here's a minimal set of special...
How Web browsers display a standard SSL connection compared with an EVSSL connection
Secure Sockets Layer (SSL) is a peer to peer (or client to server) communication protocol designed to encrypt the data being transmitted between two computers...
Injecting new line characters (e.g. CR LF) into security logs with Unicode
Today I was asked if ESAPI's approach to sanitizing log messages for CRLF (carriage return, line feed) injection was sound. "CRLF Injection" in this case...
List of characters for testing Unicode transformations and best-fit mapping to dangerous ASCII
I'm attaching two CSV files for use in test cases and tools. The uni2asc.csv contains all of the Unicode characters that map to something ASCII...
Advisory: Certain domain names could allow execution of arbitrary code in Opera
Opera released 10.01 recently, which fixed a memory corruption issue found with Casaba’s IDN/URI fuzzer.http://www.opera.com/support/kb/view/938/
Unibomber tool for specialized XSS testing
At Black Hat I’m planning to demo a new tool we’ve been putting together at Casaba Security. It’s mostly a brute force input testing tool...
Advisory: Webkit – Visiting a maliciously crafted website may lead to a cross-site scripting attack
More from: http://support.apple.com/kb/HT3613CVE-ID: CVE-2006-2783Available for: Mac OS X v10.4.11, Mac OS X Server v10.4.11, Mac OS X v10.5.7, Mac OS X Server v10.5.7, Windows XP...
Advisory: International Components for Unicode – Maliciously crafted content may bypass website filters and result in cross-site scripting
Update from: http://support.apple.com/kb/HT3613CVE-ID: CVE-2009-0153Available for: Windows XP or VistaImpact: Maliciously crafted content may bypass website filters and result in cross-site scriptingDescription: An implementation issue exists...
Major applications fail to include full Unicode support
As I’ve found with most of the major Web-apps out there, including social media giants like Facebook and others, Unicode support is far from complete....
Advisory: International Components for Unicode CVE-2009-0153
Big ones from Apple today: http://support.apple.com/kb/HT3549CVE-ID: CVE-2009-0153Available for: Mac OS X v10.5 through v10.5.6, Mac OS X Server v10.5 through v10.5.6Impact: Maliciously crafted content may...
Unicode security attacks and test cases – Best-fit mappings and String transformations
Best-fit mappings are another complex topic in Unicode, easily overlooked or misunderstood. On the defensive side, if you can only remember two things: Converting to...
Ultrafast UTF-8 decoder by Bjoern Hoehrmann
I believe this is still getting tested by several parties, but it’s obviously a highly optimized implementation of a UTF-8 decoder. Bjoern Hoehrmann released his...
Unicode security attacks and test cases – fuzzing with Unicode
When it comes to fuzzing parsers, protocols, and other software, I want the fuzzer to be capable of producing tests specific to Unicode. Here’s what...
Unicode security attacks and test cases – Normalization expansion for buffer overflows
Normalization, like casing operations, can cause changes to the number of characters and bytes in a string. In testing software, I want to know how...
Advisory: Lenovo/IBM ActiveX buffer overflow
CERT released the advisory for this, which I believe is not being fixed by Lenovo/IBM.http://www.kb.cert.org/vuls/id/340420This ActiveX control comes preinstalled on many Lenovo systems, and is...
Detecting ill-formed UTF-8 byte sequences in HTML content
One issue I’ve come across, pretty infrequently, is the existence of ill-formed UTF-8 byte sequences in HTML content. As far as I can tell nobody’s...
Watcher: a free web-app security vulnerability scanner
I announced Watcher at CanSecWest and I’m happy to say IE8 Security Program Manager and Fiddler author Eric Lawrence also announced our it at MIX09...
Unicode security attacks and test cases: character mappings and normalization for testing
Point: Normalizing strings after validation is dangerousImpact: filter evasion, enabling code executionAre you testing a Web or other application in attempt to bypass restrictions on...
Uniview character lookup tool
Richard Ishida has an online character lookup tool which is very nice. It’s called Uniview and it’s comparable to Babelmap in some functionality but it’s...
Presenting IDN spoofing threats to ICANN’s security committee
I had the chance to present to the ICANN Security and Stability Advisory Committee during their ICANN Mexico conference. It was an opportunity to give...
The current state of IDN homograph spoofing in 2009 - you don’t need a .CN to do it
Aside from the frightening SSL stuff, Moxie Marlinspike stirred up some good interest in Internationalized Domain Names at Black Hat in DC with his domain...
Unicode attacks and test cases: IDN and IRI display, normalization and anti-spoofing
Internationalized Resource Identifiers (IRI's) are a new take on the old URI (Uniform Resource Identifier), which through RFC 3986 restricted domain names to a subset...
Unicode attacks and test cases - Visual Spoofing, IDN homograph attacks, and the Whole Script Confusables
More on lookalikes, confusables, IDN homograph attacks, and other fun stuff, continued from the previous post. To recap, the three classes of confusables are:Single-scriptMixed-scriptWhole-scriptWhole-script confusables...
Unicode attacks and test cases - Visual Spoofing, IDN homograph attacks, and the Mixed Script Confusables
More on lookalikes, confusables, IDN homograph attacks, and other fun stuff, continued from the previous post. Mixed-script confusables These occur when letters from one alphabet...
IDN spoofing tests
Whole-script spoofingwww.аЬс.com using Cyrillic script for domain labelwww.ігѕ.com using Greek script for domain labelᎳᎳᎳ.lookout.net using Cherokee script for subdomain labelᗯᗯᗯ.lookout.net using Canadian script for subdomain...
Word mirrors, mirrored words
While researching the confusables it became apparent that this was just the sort of thing 13 year-old jokers would love. And still, there was more...
Unicode attacks and test cases - Visual Spoofing, IDN homographattacks, and the Single Script Confusables
More on lookalikes, confusables, IDN homograph attacks, and other fun stuff, continued from the previous post. The Confusables These types of visual attacks are attributed...
Unicode attacks and test cases - Visual Spoofing, IDN homograph attacks, and the Confusables
Let's face it, playing tricks that mess with people's perception can be fun. With Unicode, there's lots of fun tricks to be had. What's to...
Advisory: Adobe Air 1.1 JavaScript execution security vulnerability
Adobe released a patch and bulletin for an issue I reported back in May. The issue is really in WebKit, and many products seem to...
Advisory: BOM'ing Firefox's Javascript Interpreter
Damage: Filter evasion, cross-site scripting Exploit: Insert Unicode byte order mark (BOM) U+FEFF into javascript statements to bypass filters. Root Cause: character absorption/swallowing Product version:...
BabelMap - navigating the spectacle of the seventeen planes
BabelMap stays open anytime I'm testing Unicode-enabled software for vulnerabilities. It's very useful for the advanced search - find all code points with the Zs category...
A shifting HTML5 spec could leave many applications vulnerable
We get into a dangerous situation when applications start implementing a standards-based specification that's still in flux. I think it's made pretty clear in the...
32nd Internationalization and Unicode Conference
Just got back from the IUC in San Jose and wanted to post my slides. Log0 2008-09-18T06:35:47.000Z Interesting, your site ( casabasecurity ) is blocked...
Unicode root-cause security issues for generating test cases
When it comes to Unicode implementations, there's a rich set of test cases to perform. Realizing it is the start. Automating it is the next...
Advisory: Browser BOM'ing for XSS
Damage: Filter evasion, cross-site scriptingExploit: Insert Unicode byte order mark (BOM) U+FEFF into HTML elements, attributes, or javascript statements to bypass filters and execute XSS.Root...
Advisory: Attack of the Mongolian space evaders! (and other Medieval XSS vectors)
Damage: Filter evasion, cross-site scriptingExploit: Bypass XSS filters, IPS/IDS, AV, or WAF's with specially crafted white_space characters to execute XSS attacks.Root Cause: Interpreting syntax replacementsProduct...
Code2000 font
Code2000 is a Unicode-based font supporting a great deal of the glyphs in Unicode 5.1, especially the really important ones like the Phaistos Disk and...
Fuzzing and detecting heap corruption with Gflags, pageheap, windbg and Image File Execution Options
It's time again to do some good ol' down home fuzzing on Windows and can't forget to enable full page heap checking, else I could...
Surrogates, supplementary characters, double-byte, multi-byte, and variable-width encoding ranges in Unicode and ANSI code pages
When I started digging into Unicode I was lost. It started to clear up for me when I eventually found a lot of terms that...
Browser user-agents and variable-width utf-8 encoding issues
Table 3.1B from Corrigendum #1: UTF-8 Shortest Form provides the basis for some interesting test cases. Hopefully I'll have something to report about this this...
HTML 5 postMessage() API allows cross-domain messaging
Finally an answer for mashups and cross-domain widget developers. Also, a lovely attack surface for the security crowd.Now domain-x can communicate with domain-y legally. John...
Sharepoint, WSS and MOSS application development and security testing
Here's a few things to lookout for when auditing or security testing a Sharepoint/WSS/MOSS application, or when building one. But first: a new Microsoft MVP...
String handling when marshalling from .Net to a platform invoke
I've been looking into this recently, and was inspired to write a bit more about this from Michael Eddington's post on the subject.By default, the...
CSS 2.1 escape sequences and encodings
I know there's plenty of good work being done over at places like http://ha.ckers.com, and http://www.thespanner.co.uk/. I have been researching CSS 2.1 and testing some...
Code review checklists
I just learned about Guidance Explorer (from Alik Levin's blog), which has been out for about a year and a half now. Looking for checklists...
Streamlining security code reviews
This is great:From: http://blogs.msdn.com/alikl/archive/2008/01/24/security-code-review-use-visual-studio-bookmarks-to-capture-security-findings.aspxSecurity Code Review – Use Visual Studio Bookmarks To Capture Security FindingsHow to streamline the process of capturing security flaws during security...
window.open in a new tab
In some automation testing I need to use window.open() to open new tabs rather than completely new browser windows. To do this in Internet Explorer...
Open Redirects - what's the problem?
Been getting this question a bit lately. First off, what's an open redirect? It's a function in your application which sends the user to some...
Firefox renders xmlns xhtml in favor of XSS
My colleague John Hernandez showed me this trick the other day, which has proven useful as an exploit in many cases. If the site returns...
Applying domain restrictions to a browser plugin (ActiveX or XPCOM)
For Internet Explorer, there's Microsoft's Sitelock. For Mozilla, I'm not sure what there is... In that case, we've been working on some solutions that could...
Microsoft Open Source Protocol references
Open Protocol Specificationshttp://msdn2.microsoft.com/en-us/library/cc203350.aspxMicrosoft releases detailed specifications and reference documentation for many of the Operating System and Application protocols.
HTML 5 specification (and HTML 4.01), references, and tests
HTML 5 differences from HTML 4http://www.w3.org/TR/html5-diff/A vocabulary and associated APIs for HTML and XHTML - the big spechttp://www.w3.org/html/wg/html5/Planet HTMLhttp://people.w3.org/mike/planet/html5/HTML 4.01 test suitehttp://www.w3.org/MarkUp/Test/HTML401/current/tests/HTML 4.01 specification including...
I18N input validation whitelist filtering with System.Globalization and GetUnicodeCategory
Maybe you’re building internationalized code and wondering how to build a whitelist filter that will support all the different character sets your planning to support....
Checking ntoskrnl for rootkit
This is not new, but I needed it the other day and wanted to post it here for memory. In Microsoft's kernel debugger tool 'kd'...
How to view recovery passwords for Windows Vista Bitlocker
Came across this and just wanted to mark it in case I ever need it. How to use the BitLocker Recovery Password Viewer for Active...
Preventing cross-site request forgery (XSRF, CSRF, aka one-click attack)
The XSRF attack exploits the stateless nature of HTTP and your web application. In its essence, an attacker can trick you into taking an action...
Uninformed.org second paper on subverting PatchGuard
Uninformed is pleased to announce the release of its sixth volume. This volume includes 3 articles on reverse engineering and exploitation technology. These articles include:-...
How to: Fuzzing Web Services on IIS 6.0 and ASP.NET
So we want to fuzz something SOAPy, again. Well here's how we're gonna do it. The approach I like to take with clients is a...
To fuzz or not to fuzz web services…
Is it worth the time to run input fuzzing tests against web services? When engaging a client for a security review I'm often the one...
Internet Explorer whitespace-as-comment hack to bypass input filters
When testing for XSS (cross-site scripting) issues, you often need to bypass filters and perform different sorts of encodings and other trickery. To be a...
IIS 6.0 %uNNNN unicode notation in the URL
I do a lot of web app pen testing. Character encoding is always an important part of many input validation test cases. Some people don't...
CSIDL - Shell constants, enumerations, and flags
I worked on an application which had a couple of requirements: Allow users access to their local drive content within a defined scope (e.g. either...
CSS3 specifications and references
CSS 3CSS3 module: Syntaxhttp://www.w3.org/TR/css3-syntax/Introduction to CSS3http://www.w3.org/TR/css3-roadmap/CSS3 Basic User Interface Modulehttp://www.w3.org/TR/css3-ui/CSS3 Ruby Modulehttp://www.w3.org/TR/css3-ruby/CSS3 HTML test caseshttp://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/index.html
CSS 2.1 specifications and references
Cascading style sheets have been a good vector for cross site scripting (XSS) bugs lately. Especially as social networking sites move to allowing users more...
ViewStateUserKey to prevent XSRF (CSRF or cross-site request forgery) in ASP.NET
ViewStateUserKey has been around for many years and is an easy solution to prevent the infamous XSRF or cross-site request forgery class of attack.It's documented:http://msdn2.microsoft.com/en-us/library/system.web.ui.page.viewstateuserkey.aspxViewStateUserKey...
Hunting Security Bugs
I had the pleasure of working with the Microsoft Office security test team on the new book Hunting Security Bugs released from MS Press. My...
Bypassing strong-name verification for a .Net assembly
Sometimes during testing I just want to copy a strong-named assembly from a build machine to my worktop. However the assembly won't run if the...
The Soviet Kernel hack
Interesting article about how user-mode code can access kernel address space and setup a call gateway descriptor GDT without using a driver.http://www.codeproject.com/system/soviet_kernel_hack.asp
Internet Explorer specific support for CSS (cascading style sheets)
1. The CSS attributes IE supports, including versioning:http://msdn2.microsoft.com/en-us/library/ms531207.aspx2. Dynamic properties using 'expression' to execute javascripthttp://msdn2.microsoft.com/en-us/library/ms537634.aspx#ImplementThis is a simple example of executing script through an expression...
OpenBSD built in exploit protections
Presentation by Theo de Raadt Exploit Mitigation Techniques (updated to include random malloc and mmap http://www.openbsd.org/papers/ven05-deraadt/index.htmlTalks about stack gaps and W^X (write or execute) memory...
Cybergeography
Internet maps, wep application mapping, CAIDA images, and lots of very interesting technology and imagery for the cybernaught in each of us.http://www.cybergeography.org/atlas/It's a closed project...