<?php
/**
nHTTP CLIENT RAZBIT NA MAJHNE KOSCE
**/
// Configuration
define("USER_AGENT", "Mozilla/5.0 (Windows; U; Windows NT 5.1; sl; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14");
define("MAX_REDIRECTS", 5);
// Internal. Do not mess with these if you don't know what ur doing.
$_forbidden_params = array("mode", "path", "_repeat", "port", "allow_redirect");
$_cookies = "";
function _generate_basic_http_request($params)
{
global $_forbidden_params;
$var = "{$params["mode"]} {$params["path"]} HTTP/1.1\r\n";
if (empty($params["Accept"])) $params["Accept"] = "*/*";
if (empty($params["Connection"])) $params["Connection"] = "close";
if (empty($params["User-Agent"])) $params["User-Agent"] = USER_AGENT;
foreach ($params as $key => $value)
{
// We're not adding internal paramaters to our HTTP request, lol!
for ($i = 0; $i <= count($_forbidden_params); $i++) if ($key == $_forbidden_params[$i]) continue 2;
$var .= "$key: $value\r\n";
}
return $var;
}
function _parse_http_response($response, $host)
{
$temp = explode("\r\n", substr($response, 0, strpos($response, "\r\n\r\n")));
$temp[0] = substr($temp[0], strpos($temp[0], " ") + 1);
$buffer["response_num"] = substr($temp[0], 0, strpos($temp[0], " "));
$buffer["response_text"] = substr($temp[0], strpos($temp[0], " ") + 1);
for ($i = 1; $i < count($temp); $i++)
{
$t = substr($temp[$i], 0, strpos($temp[$i], ":"));
$buffer[$t] = substr($temp[$i], strpos($temp[$i], " ") + 1);
}
$buffer["body"] = substr($response, strpos($response, "\r\n\r\n") + 4);
return $buffer;
}
function _parse_url($url, $params)
{
$temp = parse_url($url);
$params["host"] = $temp["host"];
$params["port"] = $temp["port"];
$params["path"] = $temp["path"];
if (!empty($temp["query"])) $params["path"] .= "?".$temp["query"];
return $params;
}
function http_get($url, $params = NULL)
{
if ($params["_repeat"] > MAX_REDIRECTS) return False;
$params = _parse_url($url, $params);
if (empty($params["port"])) $params["port"] = 80;
$handle = fsockopen($params["host"], $params["port"]);
if (!$handle) return False;
$params["mode"] = "GET";
fwrite($handle, _generate_basic_http_request($params)."\r\n");
$buffer = '';
while (!feof($handle)) $buffer .= fread($handle, 8192);
fclose($handle);
$result = _parse_http_response($buffer, $params["host"]);
if ((($result["response_num"] == 302) || ($result["response_num"] == 301)) && ($params["allow_redirect"]))
{
$params["_repeat"]++;
return http_get($result["Location"], $params);
}
else return $result;
}
/**
DEFINICIJE Z TRAVIAN PARSERJA
**/
define("LOGIN_USER", 'class="fm fm110" type="text" name="');
define("LOGIN_PASS", 'type="password" name="');
define("LOGIN_HIDD", '<p align="center"><input type="hidden" name="');
/**
DEJANSKA KODA
**/
$req = $_GET;
if ((empty($req["user"])) || (empty($req["pass"])) || (empty($req["server"]))) die("Whoa, too much info!");
$val = http_get("http://{$req["server"]}/");
$tmp = substr($val["body"], strpos($val["body"], 'name="login" value="') + strlen('name="login" value="'));
$logincode = substr($tmp, 0, strpos($tmp, '"'));
$userid = substr($val["body"], strpos($val["body"], LOGIN_USER) + strlen(LOGIN_USER));
$userid = substr($userid, 0, strpos($userid, '"'));
$passid = substr($val["body"], strpos($val["body"], LOGIN_PASS) + strlen(LOGIN_PASS));
$passid = substr($passid, 0, strpos($passid, '"'));
$hidden = substr($val["body"], strpos($val["body"], LOGIN_HIDD) + strlen(LOGIN_HIDD));
$hidden = substr($hidden, 0, strpos($hidden, '"'));
$form = array("w" => "",
"login" => $logincode,
$userid => $req["user"],
$passid => $req["pass"],
$hidden => "",
"autologin" => "ja");
echo "<html><body><form method=\"post\" name=\"form1\" action=\"http://{$req["server"]}/dorf1.php\">";
foreach ($form as $key => $value) echo "<input type=\"hidden\" name=\"$key\" value=\"$value\">\n";
echo "</form><script>document.form1.submit();</script></body></html>";
?>