Gerald: PHP verschlüsselt?

Hallo,

ein Freund hat mir eben mal diesen Quellcode gegeben. Wenn ich Ihn ausführe kommt eben mal das bekannte "Hallo Welt!".
Interessant wäre allerdings: Kann man die Verschlüsselung wieder Rückgängig machen? Es soll noch mehr in der Datei stehen.
Mir ist es nicht gelungen.

<?PHP
eval(base64_decode('JGNvZGVsb2NrX2NvZGU9IlB6NDhQM0JvY0EwS1pXTm9ieUpJWVd4c2J5QlhaV3gwSVNJN0RRb3ZLaUJJNUhSMFpTQnVhV05vZENCblpXUmhZMmgwSUdSaGN5QnBhSElnWkdGeklHdHVZV05yWlc0Z2EvWnViblF1SUUxSlUxUWhLaThOQ2o4K1BEOVFTRkFnIjsgJGNvZGVsb2NrX2NvZGU9c3RyX3JlcGxhY2UoIkAiLCJDQWciLCAkY29kZWxvY2tfY29kZSk7ICRjb2RlbG9ja19jb2RlPXN0cl9yZXBsYWNlKCIhIiwgIlc1IiwgJGNvZGVsb2NrX2NvZGUpOyAkY29kZWxvY2tfY29kZT1zdHJfcmVwbGFjZSgiKiIsICJDQWdJIiwgJGNvZGVsb2NrX2NvZGUpOyAkY29kZWxvY2tfY29kZT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19jb2RlKTsgZXZhbCgkY29kZWxvY2tfY29kZSk7IAo='));
?>

Gruß Gerald

  1. Hallo Gerald,

    Interessant wäre allerdings: Kann man die Verschlüsselung wieder Rückgängig machen? Es soll noch mehr in der Datei stehen.
    Mir ist es nicht gelungen.

    Mach aus dem eval doch einfach ein echo o.ä. Dann solltest du den dekodierten Quellcode sehen.

    Jonathan

    1. Hi,

      Mach aus dem eval doch einfach ein echo o.ä. Dann solltest du den dekodierten Quellcode sehen.

      Hier ist ne schöne Seite, die das mit dem dekodieren übernimmt.

      mfG,
      steckl

  2. Also ich bekomme das hier:

    $codelock_code="Pz48P3BocA0KZWNobyJIYWxsbyBXZWx0ISI7DQovKiBI5HR0ZSBuaWNodCBnZWRhY2h0IGRhcyBpaHIgZGFzIGtuYWNrZW4ga/ZubnQuIE1JU1QhKi8NCj8+PD9QSFAg"; $codelock_code=str_replace("@","CAg", $codelock_code); $codelock_code=str_replace("!", "W5", $codelock_code); $codelock_code=str_replace("*", "CAgI", $codelock_code); $codelock_code=base64_decode($codelock_code); eval($codelock_code);

  3. Hallo Gerald,

    ein Freund hat mir eben mal diesen Quellcode gegeben. Wenn ich Ihn ausführe kommt eben mal das bekannte "Hallo Welt!".
    Interessant wäre allerdings: Kann man die Verschlüsselung wieder Rückgängig machen? Es soll noch mehr in der Datei stehen.
    Mir ist es nicht gelungen.

    <?PHP
    eval(base64_decode('JGNvZGVsb2NrX2NvZGU9IlB6NDhQM0JvY0EwS1pXTm9ieUpJWVd4c2J5QlhaV3gwSVNJN0RRb3ZLaUJJNUhSMFpTQnVhV05vZENCblpXUmhZMmgwSUdSaGN5QnBhSElnWkdGeklHdHVZV05yWlc0Z2EvWnViblF1SUUxSlUxUWhLaThOQ2o4K1BEOVFTRkFnIjsgJGNvZGVsb2NrX2NvZGU9c3RyX3JlcGxhY2UoIkAiLCJDQWciLCAkY29kZWxvY2tfY29kZSk7ICRjb2RlbG9ja19jb2RlPXN0cl9yZXBsYWNlKCIhIiwgIlc1IiwgJGNvZGVsb2NrX2NvZGUpOyAkY29kZWxvY2tfY29kZT1zdHJfcmVwbGFjZSgiKiIsICJDQWdJIiwgJGNvZGVsb2NrX2NvZGUpOyAkY29kZWxvY2tfY29kZT1iYXNlNjRfZGVjb2RlKCRjb2RlbG9ja19jb2RlKTsgZXZhbCgkY29kZWxvY2tfY29kZSk7IAo='));
    ?>

    Kein Problem. Einfach das eval() drumherum entfernt, und schon komm folgender Code zum Vorschein (ein wenig umformatiert):

      
    $codelock_code="Pz48P3BocA0KZWNobyJIYWxsbyBXZWx0ISI7DQovKiBI5HR0ZSBuaWNodCBnZWRhY2h0IGRhcyBpaHIgZGFzIGtuYWNrZW4ga/ZubnQuIE1JU1QhKi8NCj8+PD9QSFAg";  
    $codelock_code=str_replace("@","CAg", $codelock_code);  
    $codelock_code=str_replace("!", "W5", $codelock_code);  
    $codelock_code=str_replace("*", "CAgI", $codelock_code);  
    $codelock_code=base64_decode($codelock_code);  
    eval($codelock_code);  
    
    

    Das Ding ist also nochmal unkenntlich gemacht. Noch kurz die letzte Zeile in "echo $codelock_code;" abgeändert, und es kommt folgender Code zum Vorschein:

      
    echo"Hallo Welt!";  
    /* Hätte nicht gedacht das ihr das knacken könnt. MIST!*/  
    
    

    Merke: PHP-Skripte zu verschlüsseln macht einfach keinen Sinn. Noch dazu kann man selbst den Code nicht mehr einfach lesen und ändern.

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    1. Hallo Marc,
      ich versteh auch nicht warum man ein Verschlüsselung nehmen sollte die reversible ist? Wenn ich etwas verschlüsseln möchte nehme ich doch md5() oder sowas. Oder welchen Sinn hätte das sonst?

      1. Hallo pattitheonly,

        ich versteh auch nicht warum man ein Verschlüsselung nehmen sollte die reversible ist? Wenn ich etwas verschlüsseln möchte nehme ich doch md5() oder sowas. Oder welchen Sinn hätte das sonst?

        Nun ja - MD5 ist ja streng genommen keine Verschlüsselung, sondern eine Hashfunktion. Trotzdem kann sie gut für eine halbwegs gute Einweg-Verschlüsselung genutzt werden.

        PHP-Code zu verschlüsseln macht so allerdings keinen Sinn, da der Code dem Interpreter im Klartext vorliegen muss. Ob dies nun über mehrere Umwege mittels eval() geht ist irrelevant.
        Ein Angreifer, der die PHP-Seite im Klartext bekommt, ist sicher auch fähig genug, diese kleine Hürde über eval() zu nehmen.

        Aber immerhin: Vielleicht lacht er sich dann über die "Verschlüsselung" tot, sodass er nicht mehr die Gelegenheit dazu hat, eventuelle Sicherheitslücken in der PHP-Datei auszunutzen. ;)

        Grüße

        Marc Reichelt || http://www.marcreichelt.de/

        --
        Linux is like a wigwam - no windows, no gates and an Apache inside!
        Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
        1. Hi Marc,
          warum gibt es denn solche Verschlüsselungen die eigentlich keinen Sinn haben? Also zB diesen BASE64 Code? Habe davon noch nichts gehört und frage rein interessen halber :-)

          1. Hallo pattitheonly,

            Hi Marc,
            warum gibt es denn solche Verschlüsselungen die eigentlich keinen Sinn haben? Also zB diesen BASE64 Code? Habe davon noch nichts gehört und frage rein interessen halber :-)

            Base64 ist keine Verschlüsselung sondern eine Kodierung. Durch das Base64-Kodieren sorgt man z.B. dafür, dass der entstehende Text nur aus gewöhlichen Buchstaben und Zeichen besteht, was z.B. nützlich sein kann, wenn es Zeichensatzprobleme o.ä. gibt.

            Jonathan

          2. Ich grüsse den Cosmos,

            Also zB diesen BASE64 Code?

            Mit dieser Kodierung werden z.B. Mailanhänge kodiert um sie versenden zu können.

            Möge das "Self" mit euch sein

            --
            Fragt ein Atom das andere: Hast du mein Elektron gesehen? Ich bin heute so positiv.
            ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)