post2host

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • post2host

    Howdy,

    ich habe mal die post2host Funktion benutzt, um Forenbeiträge in einem Forum schreiben zu können.
    Das ganze Script stand damals schon und funktionierte. Der Aufbau mag fraglich sein, aber nunja.
    Das Problem ist, dass es nichtmehr funktioniert und ich keine Ahnung habe wieso.

    Mit dem 1. post2host simuliere ich einen Login und hole mir anschliessend aus dem Source meine sid. Dies funktioniert einwandfrei.

    Diese sid nutze ich dann im nächsten post2host Abschnitt um einen Beitrag an das Forum zu senden. Es handelt sich hierbei um ein wbb2.

    Wo könnte das Problem liegen? Ich steh da echt auf'm Schlauch.
    (Einige Zeilen könnten mittlerweile auch überflüssig sein, hab sie aber erstmal dringelassen.)


    PHP-Code:
    <?
    function PostToHost($host, $path, $referer, $data_to_send) {
      $fp = fsockopen($host, 80);
      printf("Open!\n");
      fputs($fp, "POST $path HTTP/1.1\r\n");
      fputs($fp, "Host: $host\r\n");
      fputs($fp, "Referer: $referer\r\n");
      fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
      fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
      fputs($fp, "Connection: close\r\n\r\n");
      fputs($fp, $data_to_send);
      printf("Sent!\n");
      while(!feof($fp)) {
          $res .= fgets($fp, 128);
      }
      printf("Done!\n");
      fclose($fp);

      return $res;
    }





    $data = "l_username=testUser&l_password=blubb&send=1";

    printf("Go!\n");
    $x = PostToHost(
                  "domain.de",
                  "/wbb2/login.php",
                  "domain.de/wbb2/login.php?",
                  $data
    );



    $html = htmlentities($x);
    $html = ereg_replace('5;URL', '1;URL', $html);
    $html = ereg_replace('index.php', 'http://domain.de/wbb2/index.php', $html);
    $html4 = html_entity_decode($html);
    preg_match_all('|help(.*?)search|Uism',$html4,$matches);
    $string = $matches[0][0];
    $string = ereg_replace('help"', '', $string);
    $string = ereg_replace('href="', '', $string);
    $string = ereg_replace('misc.php', '', $string);
    $string = ereg_replace('action', '', $string);
    $string = ereg_replace('=faq', '', $string);
    $string = ereg_replace('&amp', '', $string);
    $string = ereg_replace('\?', '', $string);
    $string = ereg_replace(';', '', $string);
    $string = ereg_replace('sid=', '', $string);
    $string = ereg_replace('"', '', $string);
    $string = ereg_replace('/>', '', $string);
    $string = ereg_replace('<', '', $string);
    $string = ereg_replace('link', '', $string);
    $string = ereg_replace('rel', '', $string);
    $string = ereg_replace('search', '', $string);
    $string = ereg_replace('=', '', $string);
    $string = str_replace('"\r\n"', '', $string);
    $string = str_replace(' ', '', $string);

    $test = "this_is_a_test";

    $data2 = "sid=$string&threadid=35&message=$test&send=1";

    printf("Go!\n");
    $xy = PostToHost(
                  "domain.de",
                  "/wbb2/addreply.php",
                  "domain.de/wbb2/addreply.php?",
                  $data2
    );



    ?>

  • #2
    "klappt nicht" gibt's nicht. definiere dein problem näher.

    Kommentar


    • #3
      Im Forum kommt kein Post an, Fehlermeldungen gibt es auch keine.
      Also scheint irgendwas mit dem 2. post2host nicht zu stimmen, nur was?
      Ich schau mir das Ding nu nochmal in Ruhe an..

      Kommentar


      • #4
        Lass dir einfach das, was das Forum an dein Post2Host schickt mal ausgeben und analysiere das dann! Wird ja irgendeine Info-Seite des Forums kommen.
        hopka.net!

        Kommentar


        • #5
          Habe das gleiche Script auf einem anderen Forum angewandt, allerdings vom gleichen Anbieter und die gleiche Version.
          Login etc wurde natürlich abgeändert.. dort funktioniert das gesammte Script einwandfrei.
          Versuche ich das allerdings auf unserem Forum, was sogar die gleichen configs wie das andere hat, bekomm ich keinen post hin, bzw als Ausgabe immer die Login Seite.
          Hab mir schon einen neuen Benutzer angelegt, weil ich dachte es könnte am Sonderzeichen im Nick liegen, aber Fehlanzeige, geht dennoch nicht.
          Zuletzt geändert von Zine; 02.05.2006, 05:05.

          Kommentar


          • #6
            Ich verzweifel echt, ich hab haargenau das gleiche Script in einem anderem Forum mit gleicher Forensoftware/Version einwandfrei nutzen können, in dem jetzigen funktioniert es aber nicht. :/
            Habe ich irgendwo einen Tippfehler oder derartiges was ich nach 2 Tagen ohne Schlaf nichtmehr wahrnehme??

            Ich grübel schon den ganzen Morgen, teste rum, google.. aber nichts hat bisher geholfen.

            Kommentar


            • #7
              Ich tippe auf Abwehrmassnahmen. Dieses Forum ist voll von Fragen der Art "wie verhindere ich die mail-spam-post-Roboter"

              Kommentar


              • #8
                Ich bin die Sache nun mal etwas anders angegangen, und habe einfach Cookie Informationen im Header mitgesandt.
                Somit musste ich nur den Cookie Hash aus dem Source filtern, und konnte mir den ganzen Sid Code ersparen, was das ganze wesentlich verkürzt.
                Das Firefox Plugin Live HTTP Header war mir da ganz nützlich, um die Header Struktur des Forums zu analysieren.

                Hier das funktionierende Script:
                (viele posten nach Erfolg leider nie, wie sie zum Erfolg gekommen sind,
                sonst könnte man sich so einiges an Fragerei ersparen!)




                PHP-Code:
                <? 


                function PostToHost($host, $path, $referer, $data_to_send) { 
                  $fp = fsockopen($host, 80); 
                  printf("Open!\n"); 
                  fputs($fp, "POST $path HTTP/1.1\r\n"); 
                  fputs($fp, "Host: $host\r\n"); 
                  fputs($fp, "Referer: $referer\r\n"); 
                  fputs($fp, "Cookie: wbb2_userid=12; wbb2_userpassword=34r5483f0c909062d29a972937799560; 
                wbb2_cookiehash=$wbb2_cookiehash\r\n"); 
                  fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); 
                  fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n"); 
                  fputs($fp, "Connection: close\r\n\r\n"); 
                  fputs($fp, $data_to_send); 
                  printf("Sent!\n"); 
                  while(!feof($fp)) { 
                      $res .= fgets($fp, 128); 
                  } 
                  printf("Done!\n"); 
                  fclose($fp); 

                  return $res; 


                preg_match_all('|wbb2_cookiehash(.*?)wbb2_lastvisit|Uism',$x,$matches); 
                $wbb2_cookiehash = $matches[0][0]; 
                $wbb2_cookiehash = str_replace('Set-Cookie: wbb2_lastvisit', '', $wbb2_cookiehash); 
                $wbb2_cookiehash = str_replace('wbb2_cookiehash=', '', $wbb2_cookiehash); 








                $test_msg = "this_is_a_test"; 

                $data = "threadid=37&message=$test_msg&send=1"; 

                printf("Go!\n"); 
                $x = PostToHost( 
                              "doamin.de", 
                              "/wbb2/addreply.php", 
                              "domain.de/wbb2/addreply.php?", 
                              $data 
                ); 



                ?>
                Und für alle, die sich nun an dem Pw Hash erfreuen, keine Sorge, ist mehr oder weniger ausgedacht.

                Kommentar


                • #9
                  Deine Technik, das cookie wbb2_cookiehash aus den Headern herauszuholen, lässt noch zu wünschen übrig. regexp dh preg_match sind sicher angezeigt, aber nicht unbedingt so.

                  Kommentar


                  • #10
                    Mir ist nichts besseres eingefallen/ich kann nur das Verwenden was mir bekannt ist. Da es damals klappte, habe ich es nun wieder verwendet. ^^

                    Kommentar

                    Lädt...
                    X