Re: Bypassing of web filters by using ASCII
Agreed, nice find. Here are some perl scripts to do the transcoding (I called
it asciilate.pl):
#!/usr/bin/perl -n
#enable 8th bit on ascii characters sent to stdin, output to stdout
foreach $c (split//,$_) {print chr(ord($c)+128)}
#!/usr/bin/perl
#as above, add content-type header to make it work in IE at the start of the
output
print '<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII">';
while (<>) {foreach $c (split//,$_) {print chr(ord($c)+128)}}
#!/usr/bin/perl
#as previous, but only convert some of the input characters, making it look even
#more obfuscated than complete conversion.
print '<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII">';
while (<>) {foreach $c (split//,$_) {print chr(ord($c)+128*int(rand(1)+.5))} }
--
Hubert Seiwert
Internet Security Specialist, Westpoint Ltd
Albion Wharf, 19 Albion Street, Manchester M1 5LN, United Kingdom
Web: www.westpoint.ltd.uk
Tel: +44-161-2371028
k.huwig@xxxxxxxxx wrote:
> _______________________________________________________________________
>
>
> iKu Advisory
>
> _______________________________________________________________________
>
>
> Product : Microsoft InternetExplorer 6
>
> : various filter applications
>
> Date : June 20th 2006
>
> Affected versions : all
>
> Vulnerability Type : bypassing security filters
>
> Severity (1-10) : 10
>
> Remote : yes
>
> _______________________________________________________________________
>
>
> 0. contents
>
>
> 1. problem description
>
> 2. affected software
>
> 3. bug description/possible fix
>
> 4. sample code
>
> 5. workaround
>
>
>
> 1. problem description
>
>
> The character set ASCII encodes every character with 7 bits. Internet
>
> connections transmit octets with 8 bits. If the content of such a
>
> transmission is encoded in ASCII, the most significant bit must be ignored.
>
>
> Of the tested browsers Firefox 1.5, Opera 8.5 and InternetExplorer 6,
>
> only the InternetExplorer does this correctly, the others evaluate the
>
> bit and display the characters as if they were from the character set
>
> ISO-8859-1. Although the behaviour of the InternetExplorer is the
>
> correct one, this creates a security risk: the author of a web page can
>
> set the bit on arbitraty characters without changing the look of the
>
> page. But virus scanners and content filters see completely different
>
> characters, so that there programs cannot detect viruses or spam.
>
>
> This offers spammers and virus writers the possibility to bypass
>
> installed spam and virus filters.
>
>
>
> 2. affected software
>
>
> Only the InternetExplorer displays ASCII encoded web pages as 7 bit. We
>
> checked several hardware router and antivirus solutions, all of which
>
> failed to detect malicious JavaScript in manipulated web pages.
>
>
>
> 3. bug description/possible fix
>
>
> It should be quite easy to close this hole within filter/scan
>
> applications by clearing the most significant bit on ASCII encoded web
>
> pages before analysing them.
>
>
>
> 4. sample page
>
>
> At
>
>
> http://www.iku-ag.de/ASCII
>
>
> you can find a test page that displays a secret message. IE6 displays
>
> the text correctly, Firefox 1.5 and Opera 8.5 display glibberish text.
>
> This page only shows that IE6 displays ASCII-text correctly and does not
>
> contain any content that a filter should sort out.
>
>
> Updated information can be found at
>
>
> http://www.iku-ag.de/sicherheit/ascii-eng.jsp
>
>
>
> 5. workaround
>
>
> There is no workaround know to us.
>
> --
>
> Kurt Huwig iKu Systemhaus AG http://www.iku-ag.de/ Vorstand Am Römerkastell 4
> Telefon 0681/96751-0 66121 Saarbrücken Telefax 0681/96751-66 GnuPG
> 1024D/99DD9468 64B1 0C5B 82BC E16E 8940 EB6D 4C32 F908 99DD 9468
>
>