#TinyURL URL Enumeration Script #By Inferno@Securethoughts.com use IO::Handle; use LWP::UserAgent; use Time::HiRes qw( sleep ); my $ua = LWP::UserAgent->new; $ua->max_redirect(1); #Use this, if you want to use Tor to protect your identity. #$ua->proxy(['http'], 'http://127.0.0.1:8118/'); my $nd=""; # Length of ID my $num=""; # Value of ID my $url=""; # TinyURL Redirection Script Call my $content=""; # HTTP Response from Redirection my $temp=""; # Temporary Variable open FILE, ">>:utf8", "tinyurl.out" or die("Cannot open file for output"); while(1) { # Pick up a random ID length and value $nd=int(rand(8))+1; $num=""; for($i=1;$i<=$nd;$i++) { $s=int(rand(36)); $num.=($s>9)?chr($s+55):$s; } $temp="Processing ".$num."\n"; syswrite(STDOUT, $temp, length($temp)); # Construct the TinyURL Redirection URL $url = 'http://www.tinyurl.com/redirect.php?num='.$num; my $request = new HTTP::Request("GET", $url); my $response = $ua->request($request); $content=$response->as_string; # Check if a Location Header is present and write the URL value. if($content =~ m/(Location\: )(.*)/i) { $temp=$num." ".$2."\n"; syswrite(FILE, $temp, length($temp)); } #Use this if you want to hide you tracks with a random delay #sleep((int(rand(500))/100.0)); } close (FILE); exit 0;