Lutz: Formmail 1.92

Hallo zusammen,

konnte leider keine Informationen zu diesem Thema finden und kenne mich leider mit Perl überhaupt nicht aus. Mein Kontakformular nutzt das selfmail.pl Skript von selfhtml. Dies funktioniert auch wunderbar, bis zu der Email, welche ich jetzt von der Telekom erhalten habe:

Sehr geehrter Herr xxx,

wir haben festgestellt, dass die bekannte Sicherheitslücke im
formmail Script Ihrer Domäne xxx.de akut für
massives Spamming (1000 Mails in 30 Minuten) missbraucht
wird. Da wir Spamming bei der Deutschen Telekom AG nicht
dulden, werden wir das Script formmail kleiner der Version
1.92 zum 10.05.2002 sperren.
Aus diesem Grund  bitten wir Sie als Mindestvoraussetzung die
Version 1.92 einzuspielen.

Vielen Dank.

Anbei übersenden wir Ihnen die offizielle Sicherheitswarnung
des Formmail-Scriptes der Version 1.6:

Security Update -- Version 1.92 -- August 3, 2001
Any users who are using the popular version 1.6 or the
recently released version 1.7/1.8, should upgrade
immediately. The new version prevents unwanted anonymous
spamming through your implementation of FormMail and also
prevents unwanted access to environment variables. If you are
having problems receving e-mail and using the redirect
variable, version 1.9 should cure that as well. The new
script has two extra arrays you must now define, but will not
affect current forms or the way they appear after having been
submitted. UPGRADE IMMEDIATELY

Das Formmail-Script der Version 1.6 liegt bei Ihnen unter:

cgi-bin/selfmail.pl

Das Formmail-Script der Version 1.92 finden Sie unter folgendem Link:

http://worldwidemart.com/scripts/formmail.shtml

Meine Frage ist nun, Kann ich dieses Skipt so 1:1 übernehmen und alles funktioniert so wie bisher, oder welche Änderungen müssen vorgenommen werden ?

Hoffe mir kann da einer weiterhelfen.

Vielen Dank

  1. Hallo!
    Ich kenne diese Scripte nicht, aber ich nehme mal an, dass da die Empfänger-Adresse über das Formular übergeben wird (wahrscheinlich "hidden"). Da kann dann dann jeder mit einem eigenen Formular (bzw. Script/Programm) Daten hinsenden, um anonym E-Mails zu versenden. Schreibe die Empfänger-Adresse deshalb einfach in das Script hinein.
    Grüße: Alex

    1. Hallo!

      Tag!

      Schreibe die Empfänger-Adresse deshalb einfach in das Script hinein.

      Natürlich nur wenn Du als Empfänger immer die selbe Adresse hast. Sonnst mußt Du nämlich für jedes Formular ein eigenes Script bauen...

      1. Hi,

        Schreibe die Empfänger-Adresse deshalb einfach
        in das Script hinein.
        Natürlich nur wenn Du als Empfänger immer die selbe
        Adresse hast. Sonnst mußt Du nämlich für jedes
        Formular ein eigenes Script bauen...

        ... oder im Skript eine Umsetzungstabelle zwischen
        zulässigen realen Zieladressen und deren symbolischen
        Äquivalent anlegen.

        Die Sicherheitslücke besteht ja nur darin, daß die Zieladresse _frei_ wählbar ist - nicht darin, daß
        sie über Parameter variierbar ist.
        Nicht der HIDDEN-Parameter ist das Problem, sondern
        seine ungeprüfte Verwendung durch das Skript.
        Würde das Skript beispielsweise nur Adressen mit
        bestimmten Mustern durchlassen (z. B. an die eigene
        Domain), dann wäre es auch schon nicht mehr zum
        allgemeinen Spammen verwendbar.

        Viele Grüße
              Michael

        (der das Skript selbst auch einsetzt und dabei bisher mit der "Primitiv-Anpassung", nämlich der fest eingebrannten Ziel-Adresse, auskommt)

        1. hallo Michael,

          Würde das Skript beispielsweise nur Adressen mit
          bestimmten Mustern durchlassen (z. B. an die eigene
          Domain), dann wäre es auch schon nicht mehr zum
          allgemeinen Spammen verwendbar.

          genau das macht die neue version:

          @referers = ('deindomain.de','123.123.123.1');

          @recipients = @referers;

          @recipients = ('deindomain.de');

          oder z.B. so:

          @referers = ('deindomain.de','123.123.123.1','anderedomain.de');

          @recipients = @referers;

          @recipients = ('deindomain.de','^jemand@anderedomain.de');

          ------

          das ist eigentlich alles was angepasst werden muss:
          der Teil  "sub check_required { ...} ist neu im 1.9 alles andere ist wie beim alten script.

          sogar ich konnte das anpassen ;-)

          grüße
          thomas