<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>It's a shampoo world anyway</title>
    <link>https://shampoo.antville.org/</link>
    <description>...la lausige Leben, revisited</description>
    <language>de</language>
    <pubDate>Tue, 16 Jun 2026 11:34:51 GMT</pubDate>
    <dc:date>2026-06-16T11:34:51Z</dc:date>
    <dc:language>de</dc:language>
    <item>
      <title>The state of hacking SessionSafe</title>
      <link>https://shampoo.antville.org/stories/1607502/</link>
      <description>&lt;p&gt;It has been a month or so since I wrote about &lt;a href="http://shampoo.antville.org/stories/1586524/"&gt;SessionSafe&lt;/a&gt;. To my delight a couple of people have taken an interest in the matter. Here is a short summary of the various discussions:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Deferred Loading&lt;/b&gt;&lt;/p&gt;&lt;p&gt;There was not a lot of controversy about this topic. Only &lt;a href="http://adblockplus.org"&gt;Wladimir Palant&lt;/a&gt; made some suggestions how to &lt;a href="http://sla.ckers.org/forum/read.php?13,7607,7637#msg-9021"&gt;streamline the implementation&lt;/a&gt;. Anyway, as Firefox is about &lt;a href="http://blogs.securiteam.com/index.php/archives/849"&gt;to implement http-only cookies&lt;/a&gt; the need for Deferred Loading slowly vanishes (with Deferred Loading mainly being a http-only implementation for browsers that does not support it natively).&lt;/p&gt;&lt;p&gt;&lt;b&gt;Subdomain Switching&lt;/b&gt;&lt;/p&gt;&lt;p&gt;In the original blog entry and in the ph-neutral presentation I hinted that I considered the combination of Deferred Loading and Subdomain Switching to be sufficiently secure. &lt;a href="http://kuza55.blogspot.com/"&gt;Kuzza55&lt;/a&gt; brought to my attention that by using anti-dns-pinning and subsequently spoofing the host header with either XHR or the low level socket functions some of the protection provided by Subdomain Switching &lt;a href="http://sla.ckers.org/forum/read.php?13,7607,7637#msg-7696"&gt;can be bypassed&lt;/a&gt; (as the authentication cookie for &lt;tt&gt;secure.domain.tld&lt;/tt&gt; can be sent by the attacker). Therefore, as long not all browsers support http-only cookies and anti-pinning is still an option, we &lt;b&gt;need&lt;/b&gt; one-time URLs.&lt;/p&gt;&lt;p&gt;Besides this, I still consider Subdomain Switching a powerful tool to mitigate the effects of malicious XSS.&lt;/p&gt;&lt;p&gt;&lt;b&gt;One-Time URLs&lt;/b&gt;&lt;/p&gt;&lt;p&gt;As I expected, most feedback revolved around the JavaScript trickery that is necessary to hide the random nonces from malicious XSS. At some point during the discussion I posted my &lt;a href="http://onetimeurls.databasement.net/index.php"&gt;old PoC&lt;/a&gt; which spurred even more hacking attempts. It started out with a &lt;tt&gt;watch/unwatch&lt;/tt&gt;--problem that Kuzza55 &lt;a href="http://sla.ckers.org/forum/read.php?13,7607,7637#msg-7709"&gt;found&lt;/a&gt;, closely followed by possible caching issues. Then &lt;a href="http://wasjournal.blogspot.com/2007/03/one-time-urls-first-implementation.html"&gt;Kishor&lt;/a&gt; found a &lt;a href="http://wasjournal.blogspot.com"&gt;silly coding mistake&lt;/a&gt; of mine in the PoC. This was succeeded by a &lt;a href="http://labs.cybozu.co.jp/blog/kazuhoatwork/2007/03/re_sessionsafe_implementing_xs.php"&gt;IE and Opera specific technique&lt;/a&gt; that required to overwrite the &lt;tt&gt;document&lt;/tt&gt;-object found by &lt;a href="http://labs.cybozu.co.jp/blog/kazuhoatwork/"&gt;kazuho&lt;/a&gt;, who also found &lt;a href="http://sla.ckers.org/forum/read.php?13,7607,page=2#msg-9287"&gt;two additional problems&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Fortunately all of these issues are avoidable and resolved in the PoC. As long as references to all vital resources are kept by the Randomizer in a tamper proof local copy and all values passed to the &lt;tt&gt;go()&lt;/tt&gt;-function are examined carefully, the one-time-URL concept itself is still feasible. However due to the highly dynamic nature of JavaScript, nobody can foresee wether there are more sneaky ways to trick the Randomizer. I think &lt;a href="http://labs.cybozu.co.jp/blog/kazuhoatwork/"&gt;kazuho&lt;/a&gt; summed it up the best:&lt;/p&gt;&lt;blockquote&gt;Although I agree that it might theoretically be possible to hide a link from XSS, I wonder if its practically possible.&lt;/blockquote&gt;&lt;p&gt;&lt;b&gt;Various bits&lt;/b&gt;&lt;/p&gt;&lt;p&gt;During the ongoing work of fixing the PoC, I learned some new aspects of JavaScript:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Right now, all browser's JS implementations are single threaded. This means a running JS is never interrupted by second script (e.g., because of the triggering of an event). This comes in handy, as race condition based issues are not possible. This also explains the glaring absence of locks/semaphores and related language tools in JS. I do not know if this standardized or if the JS-interpreters behave that way just because the browser's developers could not be bothered to write threading coder. If anyone knows something more precise I would like to learn about it.&lt;/li&gt;&lt;li&gt;Internet Explorer acts strangely when it comes to redefining certain global objects. If in a single &lt;tt&gt;&amp;lt;script&amp;gt;&lt;/tt&gt;-block the &lt;tt&gt;document&lt;/tt&gt;-element is overwritten it is set to "undefined" even before the redefining instruction is executed.  Try this in IE:&lt;blockquote&gt;&lt;tt&gt;alert(document);var document = "foo bar";alert(document);&lt;/tt&gt;&lt;/blockquote&gt;&lt;p&gt;Usually &lt;tt&gt;alert(document);&lt;/tt&gt; results in &amp;quot;[object]&amp;quot; but in this case the first alert results in &amp;quot;undefined&amp;quot;. This leaves my kind of puzzled.&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Thu, 05 Apr 2007 15:04:13 GMT</pubDate>
      <guid>https://shampoo.antville.org/stories/1607502/</guid>
      <dc:creator>Maddin</dc:creator>
      <dc:date>2007-04-05T15:04:13Z</dc:date>
    </item>
    <item>
      <title>Travelling: PH-Neutral / OWASP AppSec 2006</title>
      <link>https://shampoo.antville.org/stories/1384738/</link>
      <description>&lt;p&gt;At the end of May I have the honour to present some of my research work. First I will attend &lt;a href="http://www.ph-neutral.org/"&gt;PH-Neutral&lt;/a&gt; in Berlin and talk a little bit about my results in developing transparent websecurity techniques. Later the same week, I will present our anti CSRF proxy at the &lt;a href="http://www.owasp.org/conferences/appsec2006europe.html"&gt;OWASP AppSec06&lt;/a&gt; conference in Leuven. Dear reader, if you are attending one these events please let me know, so that we can share experiences and beer at the fireplace.&lt;/p&gt;</description>
      <pubDate>Thu, 04 May 2006 10:31:52 GMT</pubDate>
      <guid>https://shampoo.antville.org/stories/1384738/</guid>
      <dc:creator>Maddin</dc:creator>
      <dc:date>2006-05-04T10:31:52Z</dc:date>
    </item>
  </channel>
</rss>

