Serverspy.net ou comment detourner des infos sur un serveur grace au php (hl , q3 , ...)

Contenu du snippet

Bon pour commencer , je voudrai juste dire que vu qu'il s'agit d'un service payant , faites attention a l'utilisation que vous pourrez faire de ca !! Je l'ai uniquement car il s'agissait d'un defi pour moi !

Explication : ServerSpy.net est un site qui permet de connaitre le status d'un server type Half-Life ou autre (beaucoup d'autre) et de l'afficher dans une page , mais le probleme , l'edition des templates est uniquement limité au changement des couleurs du tableau afficher , comme vous pouvez le voir sur cette page :

http://www.serverspy.net/site/search/server.html?a=138.237.164.190:27015&g=0

(il s'agit d'un exemple c'est tout , c'est pas de la pub) !

Donc mon souci etait d arrivé a modifier ce "theme" pour :
- enlever les pubs qui traine dans un premier temps !
- afficher les infos comme bon me semble dans un second temps !

je repete que comme il s'agit d'un service payant , ceci peut etre considere comme du piratage meme si les informations obtenu n'ont pas ete difficile a trouver !!!!!! ATTENTION QUAND MEME ! (de base le service est pas payant en fait , c'est juste le changement de theme du tableau qui l'ai !! Attention donc !!)

donc l'idee c'est d'intercepter les modules javascript qui contient les informations sur le serveur et les affiche dans le tableau ! pour cela , un simple analyse du code source du lien ci dessus permet de determiner que "<SCRIPT LANGUAGE="JavaScript" SRC="http://share1.serverspy.net/cgi-bin/ssPERL.js?a=138.237.164.190:27015&g=0"></SCRIPT>" est la clef de notre probleme (il affiche le tableau directement sur la page par cette methode donc impossible a editer dans un premier temps)

Solution :
le PHP nous permet d intercepté ces informations et dans faire ce que l'on veut , notament grace a la fonction fopen() , puis avec un fgets de 4096 nous permet de lire le contenu du fichier ligne par ligne !!
il suffit donc de reperer les lignes des informations souhaités et des "couper" les elements des lignes non souhaité !!

Exemple de source donc (je ne vous fait attendre plus longtemps ;) !)

Source / Exemple :


<?
$file = fopen("http://share1.serverspy.net/cgi-bin/ssPERL.js?a=$ip&g=0", "r");
$i=0;
while (!feof($file)) {
    $buffer = fgets($file, 4096);
    $i = $i + 1;
    if ($i==83) {
        $buffer = str_replace("document.write('<TD CLASS=\"TDodd\">","",$buffer);
        $buffer = str_replace("</TD>');","",$buffer);
        $map = $buffer;
    }
    if ($i==91) {
        $buffer = str_replace("document.write('<TD CLASS=\"TDodd\">","",$buffer);
        $buffer = str_replace("</TD>');","",$buffer);
        $nb_joueur = $buffer;
    }
}
echo "<center><font face=verdana size=1><b>$ip</b><br><table><tr><td><font face=verdana size=1><b><u>Nb de joueurs :</u> $nb_joueur</b><br><b><u>Map:</u> $map</b></td></tr></table></font></center>";
fclose($file);
?>

Conclusion :


le i represente le numero de la ligne en cours ! donc rien ne vous empeche de remettre un autre if ($i=157) par exemple si c vous chante !

Conclusion
ce petit fichier php permet donc , avec le paramatre ip= dans l url (http://monsite/server.php?ip=123.123.123.123:12345) , d analyser un server en utilisant le moteur (qstat) de serverspy.net pour un server type HALFLIFE (g=0 dans la premiere ligne) !!
Je pense que c'est valable uniquement pour Halflife car les lignes du fichier pour les autres serveurs peuvent etre differentes , et donc vous donner des informations "idiotes" !

Dans mon exemple , j'ai juste recuperer le nombre de joueur sur le nombre total permit , ainsi que la map en cours ! le tout afficher dans un petit tableau bien moins encombrant que leur tableau enorme et plein de pub !

Voila Voila
en esperant pouvoir aider plus d'un webmaster ;) ! ++

P.S. :
- il serait peut etre utile donc de rajouter que c'est grace a serverspy.net que les info on ete recupere (a leur insus , je vous l accorde) , style en tout petit ecrit avec un lien , ca peu eviter les pb eventuelles avec eux !
- pour analyser le fichier en question et reperer les lignes contenant les infos , il suffit de telecharger le fichier http://share1.serverspy.net/cgi-bin/ssPERL.js?a=138.237.164.190:27015&g=0 (pour ceux server par exemple , changer l ip ou le jeux si necessaire !!) et de reperer les lignes ;) !!
- Si jamais il veulent vraiment empecher ceci , il le pourrait facilement , en changer le theme de base tout les jours par exemple , ce qui nous obligerait a recharger le fichier et rereperer les lignes a nouveau !!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.