1.9k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von spectral Mitglied (375 Punkte)
Hi,
sry, falls das etwas offtopic sein sollte. Dieses php-script wurde mir auf einen ftp-server hochgeladen. Habe von php selber keine ahnung. Soweit ich das sehen kann, scheint es die aktuelle ip und den ländercode auszugeben. Oder ist da noch mehr, was dieses script macht? Wenn das jemand mal kurz überfliegen könnte, wäre ich dankbar.

<?php
// This is a sig: 3172531e0665753224ac0d8314473a9e
error_reporting(E_ALL);

$url2test="http://91.207.61.37/ip.php";

function GetCurl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
//curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
return curl_exec($ch);
}

function fgc($filename)
{
$handle = fopen($filename, "rb");
$contents = fread($handle, 1024);
fclose($handle);
return $contents;
}

echo "<pre>\n";
$curl_exist=function_exists("curl_init")?1:0;
$aufo=(ini_get("allow_url_fopen"))?1:0;
$fgc=function_exists("file_get_contents")?1:0;
$safemode=ini_get("safe_mode")?1:0;
$content="";

if($curl_exist) $content=GetCurl($url2test);
else if($aufo)
{
if($fgc) $content=file_get_contents($url2test);
else $content=fgc($url2test);
} else echo("ERR:NOOPEN\n");

$res=array();
if(preg_match("/IP:(\d+\.\d+\.\d+\.\d+)\s*CC:(.+)/",$content,$res))
{
echo "IP:$res[1]\n";
echo "CC:$res[2]\n";
} else echo("ERR:NOCONTENT\n");

echo "FTR:CURL:$curl_exist:AUFO:$aufo:SM:$safemode\n";
echo "</pre>\n";
?>


Danke im voraus,
spec

6 Antworten

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Das Skript ruft die Seite unter http://91.207.61.37/ip.php auf und wertet sie aus oder gibt entsprechende Fehlermeldungen aus. Mehr nicht.

Wie wiederum die angegebene Seite funktioniert ist nur halb ersichtlich: sie gibt die IP des Aufrufers aus und dazu noch einen Code. Ob letzterer aber das Land oder die Sprache sein soll kann ich nicht sagen... Damit die Seite aber überhaupt einen Sinn macht, vermute ich die Rückgabe des Lands (da sie intern eine Zuordnungstabelle verwalten könnte, in der Adressblöcke Ländern zugeordnet sind), da die Sprache ja eh nur der Browser schicken kann und somit vom PHP-Skript selbst hätte abgefragt werden können.
0 Punkte
Beantwortet von
also das Skript wertet nicht die Ausgabe des Links, sondern checkt
die Funktionen der PHP-Umgebung, so sieht die Ausgabe bei mir aus

IP:192.168.155.131
CC:XX
FTR:CURL:0:AUFO:1:SM:0

CC = CountryCode, denke ich

haben deine FTP User auch Websites mit PHP, ich wurde mir jetzt
Gedanken über die Sicherheit machen ;)
schon alleine das der Provider der IP in der Ukraine (CC:UA) sitzt, sollte
einen Aufhorchen

ciao
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
also das Skript wertet nicht die Ausgabe des Links
Doch, tut es - siehe file_get_contents() per http:// und preg_match(). Wie du das mit einer privaten IP schaffst, ist mir jedoch noch ein Rätsel. Mit einer öffentlichen bekommst du deine eigene und dann halt das zugeordnete Land angezeigt.

Ich will mal nicht ausschließen, dass ip.php jeden Aufruf von sich selbst schön protokolliert. Bleibt nur die Frage: wie kann das oben beschriebene Skript überhaupt aufgerufen werden? Warum versucht es nicht gleich sehr viel mehr herauszufinden?
0 Punkte
Beantwortet von spectral Mitglied (375 Punkte)
Danke Euch.

Eine php-umgebung gibts auf dem ftp server nicht, auch websites nicht. Ist ein reiner ftp-server nur für datenaustausch. Allerdings wurde ein bestehendes userkonto dafür benutzt. Ob die zugangsdaten vom user erhalten wurden oder der zugang gehackt wurde kann ich nicht sagen. Passiert ist wohl nichts, denn es wurde lediglich die php-datei hochgeladen und ne minute später versucht diese wieder zu löschen. Was nicht ging, da für diesen user account keine löschrechte vergeben waren. Sonst hätt ichs wahrscheinlich nie bemerkt :)
Ich hab den account gelöscht, php-dateien und andere script dateien für die zukunft gesperrt und stärkere passwörter vergeben.
SFTP statt FTP wäre sicher auch keine schlechte idee.

grüsse,
spec
0 Punkte
Beantwortet von
wenn du meinst das ein Vergleich eine Auswertung ist bitte sehr, ist egal.
Rätsellösung: ich habe mir meine eigene ip.php zusammengeschustert ;)

@spectral weißt du noch wie die Datei hieß, ungefähr ? Danke.

ciao
0 Punkte
Beantwortet von spectral Mitglied (375 Punkte)
@ SecurebyDesign:

f0ad7e3452_iptest.php
...