---
type: Article
title: Results, Unicode Left/Right Pointing Double Angel Quotation Mark
description: Two years after a full-disclosure thread suggested it, WhiteHat Sentinel scan data confirmed that some applications normalise angle-quotation and angle-bracket characters into < and >. Across samples of 300 to 1000 sites, 31 exploitable XSS were found in 25 sites where such encodings were the only route to arbitrary HTML.
resource: "https://jeremiahgrossman.blogspot.com/2009/06/results-unicode-leftright-pointing.html"
tags: [article, webseclist-reference, en, blog-jeremiahgrossman-com, unicode, encoding, charset, xss, filter-bypass, sanitizer-bypass, large-scale-scan, measurement-study, owasp-a02-2021, owasp-a03-2021, owasp-a05-2021]
generated:
  by: webseclist-refs/1
  at: "2026-08-10T15:30:05+00:00"
status: stable
stale_after: 2027-08-10
sources:
  - id: original
    resource: "https://jeremiahgrossman.blogspot.com/2009/06/results-unicode-leftright-pointing.html"
    title: Results, Unicode Left/Right Pointing Double Angel Quotation Mark
    author: Jeremiah Grossman
  - id: canonical
    resource: "https://blog.jeremiahgrossman.com/2009/06/results-unicode-leftright-pointing.html"
also_at: []
authors:
  - Jeremiah Grossman
canonical_url: "https://blog.jeremiahgrossman.com/2009/06/results-unicode-leftright-pointing.html"
cited_by:
  - "2009.md:50"
commit: ""
content_sha256: f9cc15b174372b30cf4ffece5cbac55b0f39e2f458543744054b2c65589e3cb1
depth: full
depth_reason: default
kind: article
language: en
licence: unknown
original_url: "https://jeremiahgrossman.blogspot.com/2009/06/results-unicode-leftright-pointing.html"
published: ""
publisher: blog.jeremiahgrossman.com
publisher_english: ""
raw_sha256: b005f01b415fa61e14eac06187ecf366e0564f0eb7bf27d4dfdf2344cf6c91dd
retrieved_from: "https://blog.jeremiahgrossman.com/2009/06/results-unicode-leftright-pointing.html"
retrieved_kind: live
retrieved_utc: "2026-08-10T15:30:05+00:00"
slug: blog-jeremiahgrossman-com-results-unicode-left-right-pointing-double-angel-mark
snapshot: ""
title_english: ""
translation_file: ""
translation_of: ""
---

# Results, Unicode Left/Right Pointing Double Angel Quotation Mark

**Results, Unicode Left/Right Pointing Double Angel Quotation Mark** - Jeremiah Grossman, blog.jeremiahgrossman.com.

- Published: date not stated
- Original: <https://jeremiahgrossman.blogspot.com/2009/06/results-unicode-leftright-pointing.html>
- Current location: <https://blog.jeremiahgrossman.com/2009/06/results-unicode-leftright-pointing.html>
- Preserved from: https://blog.jeremiahgrossman.com/2009/06/results-unicode-leftright-pointing.html (live) on 2026-08-10
- 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.

A while back 3APA3A and Arian Evans (Director of Operations, WhiteHat Security) left off a full-disclosure thread about an interesting encoding bypass attack, [Unicode Left/Right Pointing Double Angel Quotation Mark](http://archives.neohapsis.com/archives/fulldisclosure/2007-05/0384.html).

Dear full-disclosurelists.grok.org.uk,

By the way: I saw Unicode Left Pointing Double Angel Quotation Mark (%u00AB) / Unicode Right Pointing Double Angel Quotation Mark (%u00BB) are sometimes translated to '<' and '>'. Does somebody experimented with

%u00ABscript%u00BB

in different environments to bypass filtering in this way?

Arian promised to get back to 3APA3A after scanning several hundred production websites using [WhiteHat Sentinel](http://www.whitehatsec.com/home/services/services.html). A huge R&D benefit of the platform. Two years later there is data to share. We’ve been busy, but hey, better late the never right? :) As it turned out 3APA3A was correct! Arian discovered a small number of Web applications vulnerable to the encoding technique and they add up if the sample pool is large enough. Samples ranging from 300 to roughly 1000 websites. Remember these are collapsed numbers. Meaning multiple vulnerability inputs on the same Web application are grouped together.

11 exploitable XSS in 8 websites:
%u00ABscript%u00BB

15 exploitable XSS in 12 sites:
〈 ;script〉 ;

2 in 2:
U%2bFF1CscriptU%2bFF1E

1 in 1:
‹ ;script› ;

1 in 1:
〈 ;script〉

1 in 1:
⟨ ;script⟩ ;

*whitespace before semi-colons are added purposely to prevent formatting blog formatting glitches.

Arian Evans, in his own words...

These are exploitable conditions where this was the ONLY way that arbitrary HTML could be created. There were are many more sites that normalized these and the same encoding could be used for filter-evasion/exploitation, but they were not the ONLY way to create arbitrary HTML in the application. Unfortunately the dataset does not count all of the ANDs/combinations right now, just the ONLYs. So if there was a simpler way to create arbitrary HTML, that is the only way it was counted. The rabbit hole goes much deeper. Dozens of combinations and permutations that lead to exploitation and not just for XSS. For many types of syntax-attacks. Still researching.

There are also MANY more of these in international language code pages. Browser behavior gets really unpredictable with foreign-language character sets which increases XSS and HTTP/RS exploit options even more. There are also many more ways to use these when you start layering your encoding techniques. [Yosuke Hasegawa](http://www.blackhat.com/html/bh-japan-08/brief-bh-jp-08-speakers.html#Hasegawa) did a great presentation on Japanese/Kanji character sets @ BlackHat Tokyo 2008. For example I found many of these attack vectors work at an even higher percentage when URI-escaped or combined with other Hex-encoding formats (or Decimal, Base64, etc. etc. etc.).

3APA3A, thanks for opening my mind up to some new angles on filter-evasion tricks! :)
