exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

isurlscan.pl

isurlscan.pl
Posted Jun 3, 2003
Authored by Filip Maertens

This simple utility will connect to a webserver of your choosing and verify whether or not it is compliant to RFC 2616. Designed to verify Microsoft IIS servers.

tags | tool, scanner
systems | unix
SHA-256 | 5b11c0bdc25366a8b34ef23012f5c5ecbc7af057a245736c18f21d6c0f7efddb

isurlscan.pl

Change Mirror Download
#######################################################################
#!/usr/bin/perl
#
# isurlscan.pl - Testing User-Agent: overflow field
#
# This tool simply checks an IIS machine for the implementation of the
# URLScan information security control provided by Microsoft. This tool
# does not comply with RFC 2616 and is therefore detectable.
#
# Detects:
# - URLScan up to 6.0.3547.0
# - Other versions ??
#
# References:
# - Stephen Cope <mail@nonsense.kimihia.org.nz>
# - RFC 2616
#
# Quickhack code: feel free to modify, update, delete, ... this piece
# of quickly slapped together code for your own fun and profit :)
#
#######################################################################

use IO::Socket;
use Net::hostent;

print "isurlscan.pl - Test Microsoft URL Scan Usage, by Filip Maertens\n";
die " [x] Too little arguments, syntax: isurlscan [host] (port)\n\n" if @ARGV == 0;

#######################################################################
# COMMAND LINE STUFF

$port = $ARGV[1];
$port = "80" if $ARGV[1] == "";
$host = inet_ntoa(gethostbyname($ARGV[0])->addr);

print " Evaluating parameters:\n";
print " - Hostname : $ARGV[0], ($host:$port)\n";
print " - Port : $port\n";
print " Creating request: ";

$request = "HEAD /isurlscan.exe HTTP/1.0\nHost:$ARGV[0]\nUser-Agent:IsURLScan v0.01\r\n\r\n";

print "Done\n";


#######################################################################
# ZHA REEL STUFF

print " Connection status: ";

$socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>$host, PeerPort=>$port) || die "Failed.\n";
print "Alive\n";
print $socket "$request";

# Check returned data

my $the_response=<$socket>;

# get the header data :: if you feel savvy, you might want to insert more controls here

while(<$socket>=~ m/^(\S+):\s+(.+)/) {
# skip over the headers
}

my $data='';

# get the entity body

while (<$socket>) {
$data.=$_
};

close($socket);

$status = "RFC 2616 compliant";
$status = "Non RFC 2616 compliant, URL Scan might be implemented" if length($data) > 0;

print " Target status: ";

print "$status\n\n";

#######################################################################
# (EOF)
Login or Register to add favorites

File Archive:

August 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Aug 1st
    15 Files
  • 2
    Aug 2nd
    22 Files
  • 3
    Aug 3rd
    0 Files
  • 4
    Aug 4th
    0 Files
  • 5
    Aug 5th
    15 Files
  • 6
    Aug 6th
    11 Files
  • 7
    Aug 7th
    43 Files
  • 8
    Aug 8th
    42 Files
  • 9
    Aug 9th
    36 Files
  • 10
    Aug 10th
    0 Files
  • 11
    Aug 11th
    0 Files
  • 12
    Aug 12th
    27 Files
  • 13
    Aug 13th
    0 Files
  • 14
    Aug 14th
    0 Files
  • 15
    Aug 15th
    0 Files
  • 16
    Aug 16th
    0 Files
  • 17
    Aug 17th
    0 Files
  • 18
    Aug 18th
    0 Files
  • 19
    Aug 19th
    0 Files
  • 20
    Aug 20th
    0 Files
  • 21
    Aug 21st
    0 Files
  • 22
    Aug 22nd
    0 Files
  • 23
    Aug 23rd
    0 Files
  • 24
    Aug 24th
    0 Files
  • 25
    Aug 25th
    0 Files
  • 26
    Aug 26th
    0 Files
  • 27
    Aug 27th
    0 Files
  • 28
    Aug 28th
    0 Files
  • 29
    Aug 29th
    0 Files
  • 30
    Aug 30th
    0 Files
  • 31
    Aug 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close