<<< Date Index >>>     <<< Thread Index >>>

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 
> 
>