<?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:56:19 GMT</pubDate>
    <dc:date>2026-06-16T11:56:19Z</dc:date>
    <dc:language>de</dc:language>
    <item>
      <title>Why I do not like taint tracking</title>
      <link>https://shampoo.antville.org/stories/1693373/</link>
      <description>&lt;p&gt;While I was giving a talk yesterday on our &lt;a href="http://www.informatik.uni-hamburg.de/SVS/papers/2007-ACM-SAC-string-masq.pdf"&gt;dynamic&lt;/a&gt; and &lt;a href="http://www.informatik.uni-hamburg.de/SVS/personnel/martin/2007-MJ-TechReport_279.pdf"&gt;language based&lt;/a&gt; approaches concerning the avoidance of code injection vulnerabilities at &lt;a href="http://pi1.informatik.uni-mannheim.de/"&gt;Laboratory for Dependable Distributed System&lt;/a&gt; at the University of Mannheim, I came up  with a nice description, why I dislike dynamic &lt;a href="http://en.wikipedia.org/wiki/Taint_checking"&gt;taint tracking&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;Preventing code injection exploits using dynamic taint tracking is like letting a thief in your house and checking his bag for stolen goods at the very moment he tries to leave. It might work, but only if you never lose track of the gangster and if you really know your house. However, I would prefer a solution that does not let thieves in my house in the first place. &lt;/blockquote&gt;&lt;p&gt;(Nonetheless, I think taint tracking obviously has a valid place in the defender's arsenal)&lt;/p&gt;</description>
      <pubDate>Wed, 19 Sep 2007 13:31:06 GMT</pubDate>
      <guid>https://shampoo.antville.org/stories/1693373/</guid>
      <dc:creator>Maddin</dc:creator>
      <dc:date>2007-09-19T13:31:06Z</dc:date>
    </item>
    <item>
      <title>DNS rebinding at CCS'07</title>
      <link>https://shampoo.antville.org/stories/1673320/</link>
      <description>&lt;p&gt;This year's &lt;a href="http://www.acm.org/sigs/sigsac/ccs/CCS2007/"&gt;ACM conference on Computer and Communication Security (CCS)&lt;/a&gt; features two excellent papers on DNS Rebinding (the attack formerly known as &amp;quot;anti-DNS-pinning&amp;quot;).&lt;/p&gt;&lt;p&gt;Besides discussing DNS rebinding for firewall circumvention, &lt;a href="http://crypto.stanford.edu/dns/"&gt;Protecting Browsers from DNS Rebinding Attacks&lt;/a&gt; by Jackson et al. also covers DNS-rebinding-based IP-hijacking, which can be used to commit click-fraud (an malicious application of the attack I have not thought of before). Furthermore, the authors propose a couple of defensive strategies, of which two have especially caught my attention:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;To protect a given intranet, they propose a firewall solution. This special firewall specifically filters DNS traffic and denies DNS resolution of external hostnames to internal IP addresses. A nice idea that is easy to deploy within a company network. &lt;/li&gt;&lt;li&gt;Furthermore, they suggest to alter the web browser's pinning strategy from strict IP-pinning to class C-pinning. This means DNS rebinding within the same /24 range is permitted. Such a policy would allow using DNS-Rebinding for load-balancing and failure recovery while preventing the discussed attacks. This is a better policy as we enforce in &lt;a href="http://databasement.net/labs/localrodeo/"&gt;LocalRodeo&lt;/a&gt; - it prevents the intranet-targeted attacks as well as we do but also counters IP-hijacking. For allowing dynamic-DNS restricting the IP changes to class C is probably to strict though.  &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-52.html"&gt;Dynamic Pharming Attacks and the Locked Same-Origin Policies for Web Browser&lt;/a&gt; by Karlof et al. shows how pharming attacks can employ DNS-rebinding to subvert strong authentication mechanisms like client-side SSL (another malicious application I had not thought of before). To counter this threat the propose a &amp;quot;locked same-origin policy&amp;quot; that does not only take domain, port, and protocol into consideration but also requires that the private keys of the web page's respective SSL-certs match (an approach that obviously only works for web pages served via https).&lt;/p&gt;&lt;p&gt;I think this solution is a pointer in the right direction. Making the security properties of a web application depended on something that is not directly controlled by the application itself (DNS) was a bad idea in the first place. In the future we should work replacing this policy by something more appropriate and fine-grained.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; &lt;a href="http://maone.net/"&gt;Giorgio Maone&lt;/a&gt; announced that the next major version of &lt;a href="http://noscript.net/"&gt;NoScript&lt;/a&gt; will include the stanford paper's &lt;a href="http://sla.ckers.org/forum/read.php?6,4511,14490#msg-14490"&gt;&amp;quot;same subnet&amp;quot; anti-rebinding policy (both in IPV4 and IPV6)&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 09 Aug 2007 10:47:14 GMT</pubDate>
      <guid>https://shampoo.antville.org/stories/1673320/</guid>
      <dc:creator>Maddin</dc:creator>
      <dc:date>2007-08-09T10:47:14Z</dc:date>
    </item>
    <item>
      <title>Using eval() in Greasemonkey scripts considered harmful</title>
      <link>https://shampoo.antville.org/stories/1537256/</link>
      <description>&lt;p&gt;For some time now, there is a vague assumption in the web-security community that browser add-ons like e.g. Firefox extensions can cause security problems. On my flight back from PacSec, I decided to have a closer look on &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt; scripts. I had already downloaded all available Greasemonkey-scripts from &lt;a href="http://userscripts.org"&gt;userscripts.org&lt;/a&gt; a while ago, but never got around to do anything with them. When I was skimming through the files, I noticed that &lt;tt&gt;eval()&lt;/tt&gt; is used quite frequently. It didn't take long to find a userscript that passes non-sanitized user-provided data to a &lt;tt&gt;eval()&lt;/tt&gt;-statement: &lt;a href="http://userscripts.org/scripts/show/1657"&gt;Mailto Compose In GMail (with choice)&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The userscript parses mailto hyperlinks and creates according compose-links to gmail.com. The parsing is done by a simple regexp:&lt;/p&gt;&lt;blockquote&gt;&lt;tt&gt;nameValue = param.match(/([=]+)=(.*)/);&lt;br /&gt;...&lt;br /&gt;emailTo = emailTo + "%2C%20" + nameValue[2];&lt;/blockquote&gt;&lt;p&gt;These values are used in an &lt;tt&gt;eval()&lt;/tt&gt; to create a new global variable:&lt;/p&gt;&lt;blockquote&gt;&lt;tt&gt;eval("var " + emailUrlVarName + "&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'https://mail.google.com/mail?view=cm&amp;tf=0"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + (&lt;b&gt;emailTo&lt;/b&gt; ... );&lt;/tt&gt;&lt;/blockquote&gt;&lt;p&gt;As there is no intermediate filtering step, injecting code into this &lt;tt&gt;eval&lt;/tt&gt; is rather simple:&lt;/p&gt;&lt;blockquote&gt;&lt;tt&gt;&amp;lt;a mailto="me@th)';&lt;/tt&gt;&lt;i&gt;your_js_code_here&lt;/i&gt;&lt;tt&gt;;//&amp;gt;name&amp;lt;/a&amp;gt;&lt;/tt&gt;&lt;/blockquote&gt;&lt;p&gt;If a Firefox with the according userscript installed displays a webpage that contains such a mailto-link, the browser executes the injected JavaScript in the domain of the displayed webpage. Therefore the Greasemonkey-script creates a XSS-problem in all web applications that allow users to create arbitrary mailto-links (as e.g. the default installation of Wordpress does). Go &lt;a href="http://databasement.net/labs/greasemonkey/demo.html"&gt;here&lt;/a&gt; for a demo. Furthermore, these scripts are executed in the Greasemonkey domain, thus are allowed additional privileges like cross-domain XMLHttpRequests.&lt;/p&gt;&lt;p&gt;I don't consider this issue to be grave or critical. I don't expect the install-base of this particular userscript to be big enough to actually cause any exploitation. Nonetheless I think it is a good example how browser add-ons can create XSS-problems in web apps that are secure themselves.&lt;/p&gt;</description>
      <pubDate>Tue, 26 Dec 2006 14:07:51 GMT</pubDate>
      <guid>https://shampoo.antville.org/stories/1537256/</guid>
      <dc:creator>Maddin</dc:creator>
      <dc:date>2006-12-26T14:07:51Z</dc:date>
    </item>
  </channel>
</rss>

