logo Homepage
Pages: [1]
  Imprimer  
Auteur Fil de discussion: Demande de votre aide pour un script de connexion(auto)  (Lu 9298 fois)
mastho
Profil challenge

Classement : 815/54280

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« le: 10 Août 2009 à 17:47:14 »

Bonjour,

Je vous explique pourquoi j'ai besoin de vous:
Je joue sur le site http://www.worldofstargate.fr/ et je voudrais faire un script en PHP si possible pour me connecter et vérifier ensuite si il n'y a pas eu de rapport d'attaque.

Je sais regarder pour les attaques mais je n'arrive pas à me loguer car il est bien protéger enfin j'ai pas assez de connaissances pour y arriver, j'ai essayé avec tout mes cookies et file-get-content(comme la première épreuve programmation) mais je tombe sur la page d'accueil.

Je ne veux pas d'un script tout finit mais d'une idée où une fonction qui me permettrait de simuler le remplissage des cases(input) pseudo, mdp, qui choisirai le (type select)serveur ( pour moi 2) et qui simulerai l'action du bouton car ce bouton génère une variable nommé rand qui est vérifié pour la connexion et que je ne sais pas comment la trouver lorsque j'envoie les variables en GET. Il y a aussi deux variables x et y que je ne comprends pas.



Merci de votre aide
Ps: Je n'ai rien à vous montrer vu que je ne sais pas comment m'y prendre.
Journalisée
hisoka69

Profil challenge

Classement : 26/54280

Membre Complet
***
Hors ligne Hors ligne
Messages: 209

"Qu33ch3 officielle de NC".


Voir le profil
« #1 le: 10 Août 2009 à 20:59:46 »

C'est un bot que tu veux faire et c'est de la triche...

Si c'est pas le cas demande à un admin du site en question de te dire comment faire

Journalisée

"Qu33ch3 officielle de NC".
Iansus

Profil challenge

Classement : 50/54280

Membre Senior
****
Hors ligne Hors ligne
Messages: 262


Voir le profil WWW
« #2 le: 10 Août 2009 à 22:43:54 »

pour moi c'est pas un bot, c'est juste qu'il veut savoir s'il s'est fait attaqué.

Si le jeu est du même style que Ogame niveau login, alors quand tu te logues, tu dois ariver sur une page "[nom_de_la_page].php?rand=[valeur_du_rand]".

Et tu es redirigé sur cette page depuis la page de vérification de connexion.
Donc, tu transmets en POST les données à la page de vérif, transmets le REFERER si besoin est, et tu récupères la page vers laquelle on te redirige, ainsi que les cookies. Tu auras normalement accès au contenu de cette page.
Journalisée
mastho
Profil challenge

Classement : 815/54280

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« #3 le: 11 Août 2009 à 17:43:46 »

En fait, je travaille pour une entreprise et je n'ai pas envie qu'ils sachent que je vais regarder ce site de jeu quand je dois normalement bosser.
Donc je souhaite créer un script qui se connecte seulement pour voir les attaques et me montre sans l'arrière plan et les images qui pourrait me trahir.
Et je n'arrive pas à me connecter alors créer un bot ça me paraît impossible.

Quand je cliques sur connexion j'arrive sur une page de type :
http://worldofstargate.fr/gp.php?l=Monpseudo&s=2(numéro du serveur)&x=nombreAléatoire&y=nombreAléatoire&rand=0.nombreAléatoire
qui me renvoie vers une page:
http://s2.worldofstargate.fr/login.php
avec 5 variables POST:
-login=Monpseudo
-password=MonPassSansCryptage
-x=nombreAléatoire(pas le même que en GET sur gp.php)
-y=nombreAléatoire(pas le même que en GET sur gp.php)
-server=2(numéro du serveur)

Ensuite je suis renvoyé sur le page game.php sans variable ni en GET ni en POST.(page de jeu où je peux savoir si je suis attaqué avec un preg_match.

Donc comment récupérer le rand et x et y à chaque étape?
Ou simplement est ce qu'il est possible de créer un système qui va envoyer les 5 variables à gp.php en GET puis va laisser la page renvoyer les variables nouvelles sur login.php et me donner la source de game.php?

Merci de votre aide
« Dernière édition: 11 Août 2009 à 17:48:06 par mastho » Journalisée
Iansus

Profil challenge

Classement : 50/54280

Membre Senior
****
Hors ligne Hors ligne
Messages: 262


Voir le profil WWW
« #4 le: 11 Août 2009 à 18:55:04 »

Bon, vu que personne n'a de temps à perdre sauf moi, j'ai réalisé un script de connexion, et je te laisserais faire ton récupérateur de rapport d'attaque.
Mon script te permet de récupérer le code source de la page d'index du jeu quand tu es connecté.

Expliquons ce que le jeu fait :

- Toutes les 5 secondes, une requête Ajax est envoyée vers logs.php?rand=0.[nbalea]. OSEF
- A chaque mouvement de la souris, les champs input de type hidden xgp et ygp prennent la position de la souris par rapport au coin haut gauche de la PAGE OSEF
- Quand on clique sur connexion, une page (gp.php) est chargée avec Ajax avec en données get le login, le serveur de jeu, xgp et ygp, mais elle n'est pas indispensable à la connexion OSEF
- A l'envoi du formulaire, les variables envoyées sont : login, password, server, x et y (positions par rapport au coin haut gauche de l'image de connexion) donc 1 et 1 devraient suffire ^^

Ensuite, on récupère le PHPSESSID qui nous est attribué, et on continue vers game.php sur le serveur s1 ou s2 au choix.

D'après ce que tu nous a dit, tu es sur le 2, donc voici le script approprié, pour un usage en CLI, avec CUrl :

Code:
<?php

dl("php_curl.dll");

function post($url,$post)
{
$ch curl_init();

curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_HEADERtrue);
curl_setopt($chCURLOPT_POST1); 
curl_setopt($chCURLOPT_POSTFIELDS$post);
curl_setopt($chCURLOPT_RETURNTRANSFER1);

return curl_exec($ch);
}

function get($url,$cookie="")
{
$nbs curl_init();

curl_setopt($nbsCURLOPT_URL$url);
curl_setopt($nbsCURLOPT_HEADER0);
curl_setopt($nbsCURLOPT_COOKIE$cookie);
curl_setopt($nbsCURLOPT_RETURNTRANSFER1);

return curl_exec($nbs);
}

$login_page post("http://s2.worldofstargate.fr/login.php","login=ton_logion&password=ton_password&x=1&y=1&server=2");

list($header,$page) = explode("Content-Type: text/html; charset=ISO-8859-1",$login_page);
$h_tab explode("\r\n",$header);

foreach($h_tab as $header)
{
if(preg_match("/^Set-Cookie/i",$header)) 
{
preg_match("/Set-Cookie: PHPSESSID=(.+); path=/i",$header,$out);
$phpsessid $out[1];
}
}

$page_de_jeu get("http://s2.worldofstargate.fr/game.php","PHPSESSID=$phpsessid");

?>
« Dernière édition: 11 Août 2009 à 19:03:21 par Iansus » Journalisée
mastho
Profil challenge

Classement : 815/54280

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« #5 le: 15 Août 2009 à 16:56:18 »

Merci à toi cela marche à part que mon hébergeur ne supporte pas la fonction dl().
Encore merci Iansus!
Journalisée
Iansus

Profil challenge

Classement : 50/54280

Membre Senior
****
Hors ligne Hors ligne
Messages: 262


Voir le profil WWW
« #6 le: 15 Août 2009 à 18:02:03 »

Après tu peux remplacer la libraire Curl par des sockets, mais c'est plus long à coder, et plus rapide au niveau éxécution.

En gros, le principe c'est :

Code:
<?php

$f fsockopen($le_serveur,$port);
fputs($f,$les_headers_pour_demander_la_page);
fgets($f); // Les headers + la page

?>

En gros, si tu ne sais pas quoi envoyer, regardes ce qui se passe avec HTTP Live Headers pour Firefox.
Oui alors, tu installes Wamp sur ton PC de bureau.
Journalisée
mastho
Profil challenge

Classement : 815/54280

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« #7 le: 22 Août 2009 à 16:42:24 »

Non merci je vais rester à cette solution et je préfère Tamper Data pour analyser les requêtes.
Encore merci à toi
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: