PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Die derzeitige Gästebuch-Spam-Attacke ...



Spastispam
07.03.2006, 02:52
Entgegen einiger Gerüchte und enormer Verwirrung bezüglich der derzeitigen Gästebuch-Attacken selbst hier im Forum möchte ich hier mal einiges klarstellen, bzw. meine Erfahrungen damit kund tun.

Erhaltet Ihr auch solche oder ähnliche Einträge in Eurem Gästebuch:


vtcjfm
10.02.06 um 15:22 Uhr


Visit viagra (http://www.williampauljeweler.com/images/?viagra/) pharmacy-web (http://www.pharmweb.net/) alprazolam (http://www.artstudiopottery.com/photogallery/?alprazolam/) fioricet (http://fioricet-online.step.kh.ua/) didrex (http://didrex.w48.54.ru/) levitra (http://levitra.w48.54.ru/) online pharmacy (http://online-pharmacy.w48.54.ru/) bontril (http://www.artstudiopottery.com/photogallery/?bontril/) diazepam (http://diazepam.step.kh.ua/) vicodin (http://cheap-vicodin.step.kh.ua/) cialis (http://www.williampauljeweler.com/images/?cialis/) diazepam (http://www.artstudiopottery.com/photogallery/?diazepam/) valium (http://www.artstudiopottery.com/photogallery/?valium/) phentermine (http://phentermine.w48.54.ru/) ambien (http://www.artstudiopottery.com/photogallery/?ambien/) fmqb (http://www.fmqb.com/) ambien (http://buyambien.step.kh.ua/) buy-levitra (http://levitra-online.step.kh.ua/) valium (http://valium.w48.54.ru/) fda (http://www.fda.gov/)


oder


cialis schrieb:
06.03.2006 | 22:37 Uhr

buy cialis buy cialis
cheap cialis cheap cialis
cialis soft tabs cialis soft tabs
buy cialis buy cialis
cialis generic cialis generic
cheap cialis cheap cialis


oder eben Ähniches?

Nunja.
Es handelt sich dabei nicht etwa um Personen oder "Tätergruppen" wie von diversen Leuten hier immer wieder behauptet wird, sondern höchstwahrscheinlich um servergesteuerte Computerprogramme (bots) die in stupider und automatisierter Form ihr Unwesen treiben. Eventuell sogar einer gewissen neuen Art von Viren.

Es nützt daher recht wenig, diese zu verwarnen, Verbote auszusprechen, zu versuchen diese per IP-Logging zu identifizieren zu wollen und somit ausfindig machen zu wollen - um sie rechtlich belangen zu können oder sogar mit dem Staatsanwalt zu drohen. Ihr macht Euch damit nur lächerlich und verwundert vermutlich Eure "realen" Gäste umsomehr.

Es hilft hier bloss eines: Überprüft Eure Gästebücher und Login Skripte auf Sicherheit und Individualität und modifiziert sie dementsprechend wirksam.

Wenn Ihr die Open Source PHP Skripte ohne Veränderungen der Variablen und deren Dateinamen auf Euren Servern installiert habt, so wird es mit größter Wahrscheinlichkeit irgendwann der Fall sein daß euere Gästebücher, Blogs und Foren mit diesem Spam zugemüllt werden. Auch wenn alle den "gleichen" Trick benutzen, werden diese Blockaden vermutlich auf kurtz oder lang wieder umgangen werden können. Es dauert nur eben manchmal eine gewisse Zeit, bis die Bots euch gefunden haben...

Ich persönlich habe diese Missere oder etwas Ähnliches mit der ganzen massenhaften Verwendung von Open Source PHP Skripten schon vor einigen Jahren sehen kommen...

Mir ist im Moment noch unklar, wie "intelligent" oder "lernfähig" diese - ihr Unwesen treibenden Computerprogramme - eigentlich sind oder welchen Zweck sie nun wirklich verfolgen bzw. wem sie letzlich dienen und wer seinen Nutzen davon hat. Aber eines dürfte recht klar sein: SeID: [ID filtered]

Wenn es ganz dicke kommt, so können diese Biester sich auch noch selbsttätig reproduzieren...


Ich habe verschiedenen Untersuchungen und Tests angestellt und entdeckt, daß sehr einfache Veränderungen an den übermittelten Variablen in den Login Skripten diese Bots definitiv lahmlegen. Wie lange das wirksam sein wird, ist hier nur leider die Frage...

Da aber die Quelltexte der meisten Gästebücher im Netz auf ein und denselben unveränderten PHP Skripten beruhen, haben die Bots-Programmierer natürlich ein leichtes Spiel sich in Eure Gästebücher per Programm einzuloggen und Euch dann zuzuspammen. Das was jetzt läuft, sind vermutlich nur erste sporadische Tests.

Das Phänomen tritt zur Zeit verschärft bei einer bestimmten (und sehr beliebten und daher weit verbreiteten) Art von Gästebüchern auf, die allesamt auf den gleichen oder ähnlichen Login und Submit - Mechanismen beruhen.

Desshalb: Lasst Eure Gästebücher von PHP Programmierern schleunigst *individuell* bearbeiten oder tut dies selbst. Vermutlich ist die Spitze des Eisberges mit dieser ganzen Geschichte noch längst nicht erreicht.

Spastispam
07.03.2006, 03:12
Vorschlag 1: Nennt die PHP Login Skripte einfach um und ändert alle Verweise auf sie dementsprechend ab.

Somit können die Bots diese Skripte nicht mehr lokalisieren. Die suchen ja nur nach solchen Skripten, die ihnen auch als potentielle "logins" und "submits" einprogrammiert wurden.

Vorschlag 2: Fügt eine zusätzliche (versteckte) Variable - deren Namen nur Ihr kennt und der für Eure Webseite einzigartig ist - in das Loginverfahren ein und modifiziert alle per Maus ausgeführten abhängigen Submit-Aktionen dementsprechend zur Übertragung dieser Variable.

Wenn dan der Bot wieder versucht sich mithilfe seines "vorgemerkten" Patterns bei Euch einzuloggen und die Daten per HTTP Variablen an das Skript zu übergeben, fehlt eben diese zusätzliche Variable und der Submitversuch schlägt fehl.

Es sei zu erwähnen, daß Ihr schon einschlägige PHP Programmiererfahrungen haben solltet, um solcherart Aktionen erfolgreich zu meistern.

Es bleibt nur zu hoffen, daß die Open Source PHP Programmierer zukünftig bessere Schutz- und Konfigurationsmaßnahmen in ihre Installationsskripte einbauen werden. Oder die Nutzer zukünftig etwas bedachter mit Ihren Installationen von Open Source Code auf öffentlich zugänglichen Servern umgehen werden.

Spastispam
07.03.2006, 03:38
Hier mal einige Beispiele, wie drastisch sich das ganze im lauf kurzer Zeit auswirken kann:

http://guestbook.dr.myx.net/index.html?domain=e-school&page=1
http://www.tanzsommer.at/guestbook/lesen.php
http://albums.photo.epson.com/j/Book?u=4154537&a=30941144&noframe=true

Dabei wird man ja verrückt...

Spastispam
07.03.2006, 03:44
Ach ja: Wenn jemand sich fragen sollte: Wozu dient der ganze Wahnsinn überhaupt?

Vielleicht ist ja "page ranking" das Schlüsselwort.

Dann braucht man auch nur noch eins und eins zusammenzuzählen und weis von wem die ganze Sache ursprünglich ausgeht und zu welchem Zweck sie eigentlich dient ...

exe
07.03.2006, 09:40
Mein Gästebuch und die einiger meiner Kumpels ist individuell vom Betreiber gecoded worden. Spricht Bots die nach bekannten Büchern suchen schlagen hier niemals durch. Ich bin mir mittlerweile sicher, dass die Gästebuchseiten manuell katalogisiert werden und danach erst den Bots übergeben werden. Ich hätte (neben sicheren Skripten) auch noch ein paar mehr Ideen um das Problem zu bekämpfen:

- Feldnamen zufällig erzeugen
- Captchas
- Cookie setzen und prüfen
- Sessions
- Blacklists

Mir kommt da noch eine andere Idee. Wie wäre es wenn wir die Jungs dort anpacken wo es weh tut? Sie wollen Page-Rank, dann sollen sie ihn bekommen. Man könnte die Seite so massiv verlinken, dass es nur so kracht. Danach reported man das Ding an Google als Index-Spam. Wenn der Plan aufgeht sollte der Kollege aus dem Index fliegen. Vielleicht könnte man viel beworbene Seiten auch direkt an Google und die anderen Suchmaschinenbetreiber melden. Wäre zwar vielleicht nur ein Tropfen auf den heißen Stein, aber ärgern könnte man die Jungs so schon, wenn ihre mühevoll gerankte Site aus dem Index fliegt. ;)

Spastispam
07.03.2006, 13:07
Blacklists bringt vermutlich nicht viel.
Cookies schränkt den Betrieb der GBs nur zu sehr ein (man muß sich immer erst über die Eröffnungsseite einloggen um auf das GB zuzugreifen).
Bei sessions bin ich mir nicht sicher, ob das nicht auch einfach umgangen oder manipuliert werden könnte.

Die anderen vorgeschlagenen Sachen sind da schon eher nützlich.
Ich halte jedoch das administrative Setzen einer beliebigen und individuellen zusätzlichen Variable für das Submit auf jeder persönlichen Website für das einfachste, komfortabelste und sicherste. Sollte so ein Bot mal zufälligerweise die Kennung rausbekommen, so kann man sie mit ein par Admin-Klicks einfach umbenennen.


Ja, Du hast natürlich recht. Die schwulen "Väter" dieser Bots haben sich natürlich zunächst mal die gängigen PHP Scripts mal etwas genauer unter die Lupe genommen um ihre Babies dann mit den entsprechenden Patterns zu versorgen. Aber wer weis, vielleich kommunizieren die Biester auch noch irgendwie untereinander, um so neu gewonnene "Erfahrungen" untereinander auszutauschen.


Bei einem bin ich mir ziemlich sicher: All das Zeug kommt wohl ursprünglich aus ein und derselben Schmiede und wurde dann von verschiedenen Promoter-Gruppen übernommen. Es sind auch verschiedene Dinge recht auffällig:

- Es betrifft grösstenteils immer ein und dieselben Gästebücher und Arten von Gästebüchern.

- Bist Du einmal entdeckt worden (Dein GB), dann kommen die fast *TÄGLICH" und führen immer wieder dieselben Aktionen durch. Also vermutlich suchen die zwar selbständig nach neuen Opfern, aber wenn sie keine finden können (aufgrund ihrer zu priimitiven Arbeitsweise), dann lassen sie all den Frust bei ihren bisherigen Opfern ab...

- Mann kann da, wie gesagt, auch zwischen "Gruppen" unterscheiden. Die einen promoten gewisse Sexual-Pharmazeutika, die anderen sogenannte Livestyle-Pharmazeutika und andere dann wieder diese Online Casinos.

- all diese "Gruppen" sind inzwischen (auch bei Google) sehr wohl bekannt. Bennoch tauchen sie im Ranking immer wieder und ohne Unterlass auf.

- vermutlich hat sich der ganze Sachverhalt auch inzwischen schon verselbständigt, sodaß das Zeugs auf gewissen Servern eben läuft und läuft und läuft ... Ich meine, da ist vielleicht letztlich schon garniemand mehr, der das ganze irgendwann einmal abschalten könnte...

Was die Vermutung mit den individuell untersuchten Homepages angeht, so glaube ich nicht, daß da ernsthaft Leute sitzen die jede noch so popelige Website erst untersuchen um die Bots zu speissen. Dies wäre ja lächerlich.
Die halten mit Sicherheit lieber Ausschau nach hochfrequentierten Gästebüchern.

Somit sind Großbetreiber sicherlich eher im Visier dieser geistig behinderten Wichser.

heinerle
07.03.2006, 14:58
... Ich halte jedoch das administrative Setzen einer beliebigen und individuellen zusätzlichen Variable für das Submit auf jeder persönlichen Website für das einfachste, komfortabelste und sicherste. Sollte so ein Bot mal zufälligerweise die Kennung rausbekommen, so kann man sie mit ein par Admin-Klicks einfach umbenennen ...
Die Bots, die ich bisher beim (versuchten) Mißbrauch von Mail-Formularen beobachtet habe (isch 'abe gar keine Gästebuch) lesen die POST-Variablen direkt aus dem HTML-Quellcode des Formulars aus und sind somit relativ leicht zu erkennen, da sie die Variablen zufällig (meist mit eMail-Adressen) füllen. Bereits vorbelegte Variablen können sie aber übernehmen, daher wird die vorgeschlagene Methode nicht lange helfen.

Spastispam
07.03.2006, 15:08
Wie funktioniert das mit den Bots nun eigentlich konkret?

PHP und HTTP Variablen sind für viele normalen Gäastebuchbetreiber eher ein kryptisches Rätsel als verständlich.

Aber die Bots (welche ja nichts anderes als kleine, auf Servern und Fremdrechnern laufende Programme sind) benutzen ganz einfach das HTTP - Protokoll um Einträge in Euren Gästebüchern zu hinterlassen.

Ich glaube, da gibt eventuell auch eine gewisse Art von "Arbeitsteilung" unter den Bots. Die einen halten ständig Ausschau nach neuen Opfern, die die begehrten Gästebuch-, Blog- und Foren-Skripte auf ihren Servern insztalliert haben (das sind die eigentlichen Bots) und die anderen nehmen dann die Eiträge vor. Es wäre allerdings auch denkbar, das ein Bot (je nachdem wie er implementiert ist) auch beides zusammen erledigt. Also daß der Bot gleich, sobld er ein Gäastebuch im Netz gefunden hat dieses dann auch gleich noch mit dem eigentlichen Spam "bestückt".

Es ist theoretisch auch möglich, daß es Computerviren gibt, die so programmiert sind, daß sie sich auf x-beliebigen PCs installieren, dann mit bekannten Bots im Internet Verbindung aufnehmen, sich die Listen ausfindig gemachter potentieller Opfer von diesen Bots besorgen und dann die Spam-Attacken von Jedermanns Personalcomputer aus starten. (Ich will sehr hoffen, daß die Intelligenz der Spam Programmierer bisher nicht soweit reichte...)

Was tut nun eigentlich diese Programm oder wasauchimmer zu meinem Gästebuch senden?

Wie gesagt, die benutzen ganz einfach das HTTP Protokoll wie jeder andere Nutzer auch. Ein typischer Eintrag könnte nun so aussehen:



www.yourdomain.com/guestbook/gerGuestbookData.php?action=submit&message=Here comes the Spam text&http=http://spam.com&name=spammer name&icq=spammer icq&location=spammer location


... etwas deutlicher (mit Zeilenumbrüchen und Erkärungen) :



http://www.yourdomain.com/guestbook/gerGuestbookData.php
?action=submit
&message=[der Text des ganzen Spams hier]
&http=[der Link des Spammers]
&name=[der (fiktive) Name des Spammers]
&icq=[ja, die schreiben zuweilen auch ICQs hinein]
&location=[der (fiktive) Sitz des Spammers]


Wie man sieht, senden sie ihre HTTP Anforderung ganz einfach an das entsprechende Skript und fertig ist der Brei.

Spastispam
07.03.2006, 15:19
Die Bots, die ich bisher beim (versuchten) Mißbrauch von Mail-Formularen beobachtet habe (isch 'abe gar keine Gästebuch) lesen die POST-Variablen direkt aus dem HTML-Quellcode des Formulars aus und sind somit relativ leicht zu erkennen, da sie die Variablen zufällig (meist mit eMail-Adressen) füllen. Bereits vorbelegte Variablen können sie aber übernehmen, daher wird die vorgeschlagene Methode nicht lange helfen.


Das ist eine sehr interessante Theorie, wiederspricht aber eindeutig meinen bisherigen Erfahrungen.

1. Wenn die Bots das tun würden, müßte das ja an den Logs irgendwie zu sehen sein. Die rufen aber nicht erst das Formular zur Übertragung (was ja mittels PHP erst auf den Server generiert werden müßte) auf.
Nein, die tätigen meist einen einzigen Aufruf: Das ist der Call des entsprechenden Skriptes mit dem vollständigen Set von Variablen.

2. Mein Vorschlag funktioniert bis jetzt tadellos. Würden Sie "auslesen", dann könnten sie es ja sehr einfach umgehen.

3. Ich glaube nicht, daß die überhaupt schon so weit sind, erst rumzuprobieren bzw. das Formular abrufen, dieses dann zu parsen und ihre Aktion dann dementsprechend anzupassen. Die wäre ja schon ein erstaunlich intelligentes Vorgehen...

Die derzeitige Praxis zeigt jedoch ganz deutlich, daß diese Bots oder was auch immer das sind ziemlich bekloppt agieren. Geschrieben von Leuten mit ziemlich begrenztem "know how" in Sachen Programmierung. LOL

Ich will nur hoffen, daß wir denen nicht noch die Ideen hiermit liefern. Aber letzlich würde das nur dazu beitragen noch sichere Methoden zu finden sich davor zu schützen.


Was Du da beobachtet hast sind mit Sicherheit keine Bots sondern Hacker gewesen, die versucht (untersucht) haben ob man da was mit deinem netten Mail Skript anfangen kann.

Spastispam
07.03.2006, 16:03
Ich verstehe auch nicht, was Du in diesem Falle mit "aulesen" meinst...

Ein (menschlicher) Nutzer kann ohne weiteres die Variablen "auslesen", ja. Nämlich indem er z.B. mal testweise auf den "Submit" Button klickt und dann die HTTP Variablen aus der gesendeten URL ausliest.

Ein Bot hat diese Möglichkeit nicht. Die meisten PHP Gästebücher sind komplett in PHP gecodet. Da ist kein Formular, was man vorher anfordern könnte um irgendwelche Variablen zu sehen. Auch hat ein Bot keine Möglichkeit mal testweise auf einen Button zu drücken um an diese Informationen heranzukommen.

Wenn ein Bot das PHP Skript nicht gleich mit den richtigen HTTP Variablen bestückt und es korrekt aufruft, ist da keine Möglichkeit irgendwas auszulesen, da das Skript dann wohl in 90% der Fälle garnicht erst ausgeführt würde sondern eine Fehlermeldung generieren würde oder einfach abbrechen würde. Auf keinen Fall würde es mit vielen der besagten Gästebüchern ohnehin nicht möglich sein vorher ein Formular aufzurufen, das die gesuchten Variablen enthält.

Daß Bots so umfangreiche und teilweise intelligente Parsing-Aktionen durchführen und dann doch selbständig Untersuchungen anstellen und Entscheidungen treffen, halte ich zunächst (heute) vorläufig für Utopie. Zumindestens sind diese Spammer wahrscheinlch (und Gott sei Dank) viel zu "einfach gestrickt" um sowas zu fabrizieren.


Somit ist es sehr wichtig, Gästebücher so zu coden, daß es für ein Bot auf keinen Fall möglich ist vorher irgendwie machinell an die gültigen Variablennamen ranzukommen.

Der Aufruf eines eventuell PHP generierten Eingabeformulars müsste bereits mit einer (der) für jedes GB individuellen Variablen geschützt sein.

heinerle
07.03.2006, 16:07
Das ist eine sehr interessante Theorie, wiederspricht aber eindeutig meinen bisherigen Erfahrungen.
In Bezug auf Gästebücher mag das stimmen, bei Mailformularen ist das an der Tagesordnung.

... Was Du da beobachtet hast sind mit Sicherheit keine Bots sondern Hacker gewesen, die versucht (untersucht) haben ob man da was mit deinem netten Mail Skript anfangen kann.
Anhand der Logfiles sieht man, daß das Bots waren, die u.a. auch versteckten Links zu Spamtraps gefolgt sind und sich dort verfangen haben. Ma sieht auch am "Ausfüllverhalten" des Formulars, daß hier kein Mensch am Werke ist.

Wenn Deine Maßnahmen bisher helfen: gut. Ich wollte bloß darauf hinweisen, daß die nächste Stufe der Bots bereits existiert, wenn sie vielleicht auch noch nicht gegen Gästebücher eingesetzt wird.

heinerle
07.03.2006, 16:20
Ich verstehe auch nicht, was Du in diesem Falle mit "aulesen" meinst...

Ein (menschlicher) Nutzer kann ohne weiteres die Variablen "auslesen", ja. Nämlich indem er z.B. mal testweise auf den "Submit" Button klickt und dann die HTTP Variablen aus der gesendeten URL ausliest.
Geht aber nur, wenn die GET-Methode verwendet wird. Die empfiehlt sich aber aus diversen Gründen sowieso nicht mehr.


Ein Bot hat diese Möglichkeit nicht. Die meisten PHP Gästebücher sind komplett in PHP gecodet. Da ist kein Formular, was man vorher anfordern könnte um irgendwelche Variablen zu sehen. Auch hat ein Bot keine Möglichkeit mal testweise auf einen Button zu drücken um an diese Informationen heranzukommen.

Wenn ein Bot das PHP Skript nicht gleich mit den richtigen HTTP Variablen bestückt und es direkt aufruft, ist da keine Möglichkeit irgendwas auszulesen, da das Skript dann wohl in 90% der Fälle garnicht erst ausgeführt würde sondern eine Fehlermeldung generieren würde oder einfach abbrechen würde.

Daß Bots so umfangreiche und teilweise intelligente aktionen durchführen und dann doch selbständig Untersuchungen anstellen, halte ich zunächst (heute) vorläufig für Utopie.
Der Bot braucht doch nur die (HTML-)Seite aufrufen, die das Formular bereitstellt. Da sieht er dann:

<form action="/geheimerPfad/gb.php" method="POST">
<input name="comment" ...>
<input type="hidden" name="GeheimeVariable" value="BinIchSchlau0815">

</form>

und schon "weiß" er, daß er das Skript /geheimerPfad/gb.php mit den Parametern "comment", "GeheimeVariable" mit Inhalt "BinIchSchlau0815" mit der POST-Methode aufrufen muß.
Und wenn er ganz schlau ist, dann besucht er jedes Mal die HTML-Seite und kann so den Inhalt von GeheimeVariable immer richtig setzen.

Spastispam
07.03.2006, 17:45
Der Bot braucht doch nur die (HTML-)Seite aufrufen, die das Formular bereitstellt. Da sieht er dann:

<form action="/geheimerPfad/gb.php" method="POST">
<input name="comment" ...>
<input type="hidden" name="GeheimeVariable" value="BinIchSchlau0815">

</form>

und schon "weiß" er, daß er das Skript /geheimerPfad/gb.php mit den Parametern "comment", "GeheimeVariable" mit Inhalt "BinIchSchlau0815" mit der POST-Methode aufrufen muß.
Und wenn er ganz schlau ist, dann besucht er jedes Mal die HTML-Seite und kann so den Inhalt von GeheimeVariable immer richtig setzen.


Nein. Geht auch generell nicht wenn das Formular vorher aufgrund unserer versteckten Variable erst mittels PHP gültig generiert werden muß. SELBST DIE BEZEICHNUNG DIESER VARIABLE KANN BEI DER EINRICHTUNG DES GB ADMINISTRIERT WERDEN. Das ist genau der Punkt.

Viele programmieren Ihre Schutzmaßnahmen einfach an der falschen Stelle. Es darf (wie schon erwähnt) auf keinen Fall möglich sein, daß der Bot irgendein Formular vorher "zu sehen" bekommt, aus dem er dann gemütlich die Variablen auslesen kann. UND JEDES GB SOLLTE DESHALB INDIVIDUELL EINGERICHTET WERDEN. Keine stereotypen Übernahmen von vorgefertigten Skripten also.

Dann bliebe nur noch eins: Der Boot muß alle möglichen Webseiten auf Deinem Server parsen um alle möglichen versteckten Variablen zu finden dann eventuell für den Zugang zum Gästebuch Verwendung finden könnten - mit den entsprechenden Inhlten der geheimen Variablen ...

Wenn dann Deine ganze Webseite mittels PHP erstellt ist (also keinerlei HTML Formulare) vorhanden sind, ist es schier unmöglich ohne extremen manuellen Aufwand vorher an den Mechanismus ranzukommen. Eher was für Hacker aber mit Sicherheit nicht für die Bots die momentan unterwegs sind.


Übrigens (für ganz paranoide Gästebuchspambekämpfenwoller): Man kann seine Dateien bei der Einrichtung auch umbenennen. Somit müsste der Bot dann ganz aussenvor stehen, da er keinen Anhaltspunkt für den Zugang zum GB mehr hat.

Die ganze Sache gibt es ja überhaupt nur deshalb, weil alle GBs, Bloggs und Foren nahezu die gleichen Verzeichnisstrukturen und Dateinamen und Skriptvariablen benutzen.

heinerle
07.03.2006, 18:19
Nein. Geht auch generell nicht wenn das Formular vorher aufgrund unserer versteckten Variable erst mittels PHP gültig generiert werden muß. SELBST DIE BEZEICHNUNG DIESER VARIABLE KANN BEI DER EINRICHTUNG DES GB ADMINISTRIERT WERDEN. Das ist genau der Punkt ...
Ich fürchte jetzt stehe ich auf dem Schlauch:

Spätestens auf der Seite, auf der ich (als Mensch) den Submit-Knopf anklicke muß diese Variable doch gesetzt sein (egal, wie ihre Bezeichnung ist).
Sie darf aber nicht vorher irgendwo anders gesetzt werden, denn dann setzt das voraus, daß ich das Formular nur nach vorherigem Besuch anderer Seiten dieser Website ausfüllen kann.
Aber wenn ich Mensch die Seite mit dem Formular aufrufen kann dann kann das ein Bot auch. Und dann kann er die Variablen dieses Formulars alle genauso auslesen als wenn ich auf "Ansicht-Seitenquelltext" klicke.

Falls Du das anders siehst oder ich Dich ganz falsch verstehe - werd doch mal etwas konkreter: wo sollen welche Variablen "versteckt" generiert werden, wie werden sie wem übergeben und wer fragt sie wo wie ab?

Spastispam
07.03.2006, 18:29
Ich fürchte jetzt stehe ich auf dem Schlauch:

Spätestens auf der Seite, auf der ich (als Mensch) den Submit-Knopf anklicke muß diese Variable doch gesetzt sein (egal, wie ihre Bezeichnung ist).
Sie darf aber nicht vorher irgendwo anders gesetzt werden, denn dann setzt das voraus, daß ich das Formular nur nach vorherigem Besuch anderer Seiten dieser Website ausfüllen kann.
Aber wenn ich Mensch die Seite mit dem Formular aufrufen kann dann kann das ein Bot auch. Und dann kann er die Variablen dieses Formulars alle genauso auslesen als wenn ich auf "Ansicht-Seitenquelltext" klicke.

Falls Du das anders siehst oder ich Dich ganz falsch verstehe - werd doch mal etwas konkreter: wo sollen welche Variablen "versteckt" generiert werden, wie werden sie wem übergeben und wer fragt sie wo wie ab?


Ein Mensch kann das nur durch Anklicken eines speziellen Buttons oder eines Links. Der Bot kann das nicht (ja der hat nicht mal einen Monitor oder eine Maus).

Dann müßte also der Bot:

1. Alle Deine Seiten mit den Verweisen zu den eventuellen Gästebücherlinks aufrufen und PARSEN.

2. Dann entscheiden/untersuchen bei welcher Variablen und Link es sich um den Zugang zum Gästebuch handelt.

3. Auch auf alle möglichen Links "klicken" um eventuell erst die PHP generierten Seiten zu erstellen die den Zugang zum Gästebuch enthalten.

6. Logisch entscheiden ob es sich bei den gefundenen Links eventuell um ein individuelles Gästebuch mit den typischen (und bekannten) Submit-Variablen habndelt.

5. Mit diesen Informationen dann das Gästebuch Formular aufrufen und gültig ausfüllen...

Ja in welchem Film bin ich denn jetzt? Bist Du sicher, daß wir über die selben Dinge reden hier?


Ich versuche die ganze Zeit klarzumachen, daß es darauf ankommt in erster linie alle bekannten "Patterns" für diese Bots irgendwie zu verbauen. Ich rede nicht davon irgendwo wieder ein neues (angeblich sicheres) vorgefertigtes GB runterzuladen und zu installieren mit der Variable: "GeheimeVariable" - Die unschlagbare Waffe gegen Gästebuch Bots.

Alles klaro?

Spastispam
07.03.2006, 18:51
Eines sei hier nochmal klargestellt: Keines der Bots (wenn es überhaut richtige Bots sind) über die wie hier reden hat je irgendwo Websiten geparst um dann irgendwelche "komplexe Logik" oder so anzuwenden um Eure Gästebücher vollzuspammen.

Wer das glaubt, sieht wahrscheinlich zu viel SciFi Channel...

Die kommen alle über sehr sehr simple "vorgefertigte" Patterns. Wenn Ihr da auch nur eine Stecknadel ins Getriebe werft, sind sie außer Gefecht gesetzt. So einfach ist das.

- Sie suchen alle nach den bestimmten Dateibezeichnungen für die Skripte
- Sie verwenden alle den selben Submit-Mechanismus via HTTP Variablen und Methoden (je nach Typ des gefundenen GBs)
- Euer GB einmal entdeckt kommen sie wie die Angestochenen immer wieder und spammen Euch sinnlos und stupide mechanisch zu.

Das ist alles.

Es gibt die verschiedensten Möglichkeiten diese Stecknadel ins Getriebe dieser Bots zu werfen. Welche Methode Ihr letztlich benutzt bleibt Euch überlassen. Letztlich ist es aber auch eine Frage der Zeit und des Aufwandes, die Ihr dafür ver(sch)wenden wollt.

Nur eines ist wichtig zu wissen: Wenn Ihr das vorgefertigte PHP Material ohne Änderungen auf Euren Webservern installiert, seht Ihr auf kurz oder lang vermutlich ziemlich alt aus.


Ihr braucht dabei nicht einmal den hier beschriebenen Tip mit der ominösen "geheimen Variable" auzuführen. Es reicht sogar schon aus, irgendeine der vorhandenen Variable individuell umzubenennen und alle Verweise im Skript darauf abzuändern. Ihr werdet sehn, es funktioniert.

Es gibt keine "magisch intelligenten Bots". Auch müsst Ihr nicht immer glauben, was Euch hier aus so manchem vermeindlichen Erfahrungsschatz bezüglich dieser Sache berichtet wird.
Nein. Diese priimitiven Pseudo-Bots wurden möglicherweise lediglich von minderbemittelten 9-jährigen Script-Kiddies (oder Leuten, die sich geistig offenbar auf dieser Stufe befinden) mit irgendeinem Baukastensystem zusammengebastelt...

LOL

heinerle
07.03.2006, 21:07
...
Ja in welchem Film bin ich denn jetzt?
Du bist mittlerweise im Jahr 2006 angekommen.

Bist Du sicher, daß wir über die selben Dinge reden hier?
Ja. Aber erstens unterschätzt Du offenbar die Intelligenz bzw. Programmierkünste der Bothersteller. Und zweitens braucht der Bot nur

Google aufrufen mit "sign guestbook"
munter den angebotenen Links folgen
allen gefundenen "a href=" 1 Ebene zu folgen (das geht ohne Klicken ganz einfach via "GET") - evtl. nötige PHP-Seiten werden vom Server automatisch generiert, da sie nicht zwischen Bot und Browser unterscheiden
überprüfen, ob sich ein <form ...> </form> auf der Seite findet
wenn vorhanden alle <input...> Felder mit Inhalt füllen
die Form-Action aufrufen



Ich versuche die ganze Zeit klarzumachen, daß es darauf ankommt in erster linie alle bekannten "Patterns" für diese Bots irgendwie zu verbauen. Ich rede nicht davon irgendwo wieder ein neues (angeblich sicheres) vorgefertigtes GB runterzuladen und zu installieren mit der Variable: "GeheimeVariable" - Die unschlagbare Waffe gegen Gästebuch Bots.
"Ich versuche" ist der richtige Ausdruck. Dadurch, daß Du 50x wiederholst, daß die Bots nur nach bekannten Skripten suchen wird das auch nicht wahrer. Ich bezweifle ja nicht, daß das so geschieht (ähnlich den formmail.cgi-Attacken), aber an meinem mailto-Skript (das einen obskuren Namen hat und komplett selber programmiert ist) sehe ich, wie die Attacken laufen. Es gibt dumme Bots, die es trotz POST-Methode mit GET versuchen, es gibt aber auch bessere, die ich nur dadurch blocken kann, daß sie irgendwelche BCC in die Felder mit einschmuggeln wollen.

Alles klaro?
Leider nein, da Du immer noch nicht konkreter wirst, an welcher Stelle Du mit Deinen geheimen Variablen einen Bot von einem Browser unterscheiden willst, ohne Cookies, Javascript o.ä. einzusetzen

heinerle
07.03.2006, 21:14
Eines sei hier nochmal klargestellt: Keines der Bots (wenn es überhaut richtige Bots sind) über die wie hier reden hat je irgendwo Websiten geparst um dann irgendwelche "komplexe Logik" oder so anzuwenden um Eure Gästebücher vollzuspammen.

...

Es gibt keine "magisch intelligenten Bots". Auch müsst Ihr nicht immer glauben, was Euch hier aus so manchem vermeindlichen Erfahrungsschatz bezüglich dieser Sache berichtet wird.

...


Woher beziehst Du eigentlich Dein absolutes Wissen, das Du hier so wortreich wiederholst?
Erwartest Du wirklich, daß man allein wegen Deiner Ausführungen, die kein einziges Mal auch nur etwas in die Tiefe gehen, als einzge Vorsichtsmaßnahme alle Variablennamen in Gästebuchskripten umbenannt werden?

exe
08.03.2006, 08:09
Ich schätze, dass die Forms einmalig von einem Menschen katalogisiert werden.

Gegen die vollautomatische Befüllung spricht meiner Meinung nach, dass ich in meinem Gästebuch (selbst programmiert, nix von der Stange) immer wieder Werbeeinträge hatte, die sich an die Regeln hielten. Man musste in einem Feld z. B. eine E-Mail-Adresse eingeben (wurde gegen einen reg. Ausdruck geprüft) und in dieses Feld wurden von dem Bots tatsächlich immer "E-Mail-Adressen" eingegeben. Ein Bot kann dies anhand der Input-Tags nicht erraten. Weiterhin wurden in meinem Gästebuch nur die Felder aufgefüllt, welche von mir erzwungen wurden. Weitere Felder wie z. B. Stadt, Land oder ICQ-Nummer wurden nie mit Daten befüllt. Weiterhin trägt das Skript einen ungewöhnlichen Namen. Ich habe auch beobachtet, dass auf einer anderen Seite, wo ich das identische Skript, mit identischen Feldnamen benutzt habe, der Spam immer in anderer Form abgeladen wurde. In einem Gästebuch wurden 15 Werbeeinträge angelegt, im anderen Gästebuch wurden alle 15 Einträge in einem Eintrag getätigt. Dies war regelmäßig so der Fall.

Die Indizien sprechen also dafür, dass zumindest einige Gästebuchspammer scheinbar die Forms händisch analysieren bevor der Mist abgeladen wird.

Windwalker
08.03.2006, 10:21
Der Aufruf eines eventuell PHP generierten Eingabeformulars müsste bereits mit einer (der) für jedes GB individuellen Variablen geschützt sein.

Sorry, das war's bei mir nicht.
Mein Gästebuch ist vollständig individuell erstellt und dennoch hatte ich Spam.

Also nehme ich an, dass Menschen das Web nach Gästebüchern absuchen, sich den HTML-Code anschauen und einen Bot darauf "trainieren".

Windwalker
08.03.2006, 10:25
Der Bot braucht doch nur die (HTML-)Seite aufrufen, die das Formular bereitstellt. Da sieht er dann:

<form action="/geheimerPfad/gb.php" method="POST">
<input name="comment" ...>
<input type="hidden" name="GeheimeVariable" value="BinIchSchlau0815">

</form>

und schon "weiß" er, daß er das Skript /geheimerPfad/gb.php mit den Parametern "comment", "GeheimeVariable" mit Inhalt "BinIchSchlau0815" mit der POST-Methode aufrufen muß.
Und wenn er ganz schlau ist, dann besucht er jedes Mal die HTML-Seite und kann so den Inhalt von GeheimeVariable immer richtig setzen.

Genauso müsste es bis vorgestern bei meinem Gästebuch gewesen sein.
Den geheimen Code hatte ich als verstecktes Formularfeld beim Submit als Variable mitübergeben und so brauchten sie nur ein Submit
...?geheimerCode=1234&eingegebenerCode=1234&GaestebuchEintrag= ....
zu faken.

Mittlerweile habe ich mein GB so umgeschrieben, dass der Zufallscode beim Aufrufen des Formulars nicht als Variable beim Submit übergeben, sondern in der MySQL-Datenbank mit der IP-Adresse und Zeitstempel abgespeichert wird und von der Seite, die das Submit empfängt dann nach IP-Adresse ausgelesen wird.

So *muss* man das Formular vorher aufrufen um den Code zu generieren und der Code geht nicht über's Netz.
Seit 1,5 Tagen bin ich damit Spam frei.
Hoffentlich bleibts dabei.

Spastispam
08.03.2006, 18:14
Woher beziehst Du eigentlich Dein absolutes Wissen, das Du hier so wortreich wiederholst?
Erwartest Du wirklich, daß man allein wegen Deiner Ausführungen, die kein einziges Mal auch nur etwas in die Tiefe gehen, als einzge Vorsichtsmaßnahme alle Variablennamen in Gästebuchskripten umbenannt werden?

Ich hab es eben selbst ausprobiert (programmiert) und letztlich auch implementiert, was ich hier vorschlage.
Das ist der entscheidende Unterschied zu Dir. Wenn Du ein Problem mit meinen Aussagen hast, dann schlage doch bitte selbst mal was Vernünftiges vor. Ich schätze das kannst Du nämlich nicht...

Ich würde es nicht wagen, hier irgendwelchen Vermutungen zu äussern (wie Du das fortwärend tust).

Ich kann auch den Code hier posten, bezweifle aber, daß Du das überhaupt verstehen würdest. In Deinen Aussagen befinden sich (im Gegensatz zu meinen) keinerlei fundierte Erkenntnisse, noch irgendwelche Lösungsansätze zum eigentlichen Problem. Du bezweifelst nur alles, ohne wahrscheinlich wirklich verstanden zu haben, was Du da bezweifelst.

actro
08.03.2006, 18:17
Ich kann auch den Code hier posten, bezweifle aber, daß Du das verstehen würdest.

Na, das ist doch mal nen Angebot :D Gibt ja auch Leute hier, die das verstehen können ;)

Spastispam
08.03.2006, 18:23
Ich schätze, dass die Forms einmalig von einem Menschen katalogisiert werden.

Gegen die vollautomatische Befüllung spricht meiner Meinung nach, dass ich in meinem Gästebuch (selbst programmiert, nix von der Stange) immer wieder Werbeeinträge hatte, die sich an die Regeln hielten. Man musste in einem Feld z. B. eine E-Mail-Adresse eingeben (wurde gegen einen reg. Ausdruck geprüft) und in dieses Feld wurden von dem Bots tatsächlich immer "E-Mail-Adressen" eingegeben. Ein Bot kann dies anhand der Input-Tags nicht erraten. Weiterhin wurden in meinem Gästebuch nur die Felder aufgefüllt, welche von mir erzwungen wurden. Weitere Felder wie z. B. Stadt, Land oder ICQ-Nummer wurden nie mit Daten befüllt. Weiterhin trägt das Skript einen ungewöhnlichen Namen. Ich habe auch beobachtet, dass auf einer anderen Seite, wo ich das identische Skript, mit identischen Feldnamen benutzt habe, der Spam immer in anderer Form abgeladen wurde. In einem Gästebuch wurden 15 Werbeeinträge angelegt, im anderen Gästebuch wurden alle 15 Einträge in einem Eintrag getätigt. Dies war regelmäßig so der Fall.

Die Indizien sprechen also dafür, dass zumindest einige Gästebuchspammer scheinbar die Forms händisch analysieren bevor der Mist abgeladen wird.


Du kannst recht haben. Ich vermute nämlich auch stark, daß einige Script-Kiddies das Ganze sozusagen als "Sport" oder "Übung" betreiben.

Aber wenn es ganz dicke kommt, basteln die Spammer zur Zeit an "intelligenten" Bots. Das wäre dann wirklich eine tolle Herausfordeung für alle PHP Programmierer. Ich persönlich freue mich schon darauf...

Spastispam
08.03.2006, 18:27
Na, das ist doch mal nen Angebot :D Gibt ja auch Leute hier, die das verstehen können ;)

Ja ich hoffe doch sehr. Sonst wäre ja alles sinnlos gewesen.

Spastispam
08.03.2006, 18:34
Genauso müsste es bis vorgestern bei meinem Gästebuch gewesen sein.
Den geheimen Code hatte ich als verstecktes Formularfeld beim Submit als Variable mitübergeben und so brauchten sie nur ein Submit
...?geheimerCode=1234&eingegebenerCode=1234&GaestebuchEintrag= ....
zu faken.

Mittlerweile habe ich mein GB so umgeschrieben, dass der Zufallscode beim Aufrufen des Formulars nicht als Variable beim Submit übergeben, sondern in der MySQL-Datenbank mit der IP-Adresse und Zeitstempel abgespeichert wird und von der Seite, die das Submit empfängt dann nach IP-Adresse ausgelesen wird.

So *muss* man das Formular vorher aufrufen um den Code zu generieren und der Code geht nicht über's Netz.
Seit 1,5 Tagen bin ich damit Spam frei.
Hoffentlich bleibts dabei.

Komisch nur, daß die dezeitigen Bots (viagra, casino, phentemine) das überhaupt garnicht beherschen. Die sind einfach nicht in der Lage da irgendwas zu "faken".

Bist Du sicher, daß das ganze nicht Deiner Phantasie entspringt?
Poste doch bitte mal die Log-Ausschnitte und die Einträge hier.

Dann könntest Du mich eventuell überzeugen...

Andere Frage: Bist Du Dir wirklich sicher, daß du es richtig gemacht hast mit einer zusätzliche Variable? Es gibt nämlich 1000 Arten es falsch zu machen.

Spastispam
08.03.2006, 19:01
Gut. Hier ist der Code des Open Source PHP Gästebuches, welches ich kürzlich für einen meiner Kunden erfolgreich modifiziert habe. Der Kunde hatte dies selbst installiert und jetzt konnte er sich nicht mehr retten vor lauter Spam...

Die Modifikation nutzt ganz einfach das von mir hier vorgeschlagene Prizip der "zusätzlichen versteckten Variable".

Bitte beachtet, daß Ihr einen "diff" Vergleich machen müsst, um ALLE der erforderlichen Änderungen auch ausfindig zu machen. Es gibt entsprechende Tools dafür. Es sind insgesamt 4 Stellen, wo die signifikanten Veränderungen ansetzen.

:spam:

Original (siehe Copyrights):
http://guestbook_original.php.txt (test.dizainer.net/guestbook_original.php.txt)

Modifikation:
http://guestbook_modified.php.txt (test.dizainer.net/guestbook_modified.php.txt)

Ich konnte das hier nich in einem Code-Block mit entsprechender Hervorhebung der modifizierten Teile posten, weil das zu lang ist. Leider.

Und nochwas: Mir kam es darauf an die bisherige Funktionalität des GBs des Kunden unberührt zu lassen. Lediglich vom Spam zu befreien, was damit auch geglückt ist. Die Modifikation läuft seit 3 Wochen ohne jeglichen Spam. Wenn man in die Logs guckt, sieht man auch, daß sie es immernoch stupide versuchen...

Ich werde natürlich hier nicht posten um welche Website es sich handelt. Zum Schutz meines Kunden natürlich.

Und nochwas: Es hat WIE SCHON SO OFT HIER ERWÄHNT, keinen Zweck das Ganze ohne jegliche Änderung zu implementieren - da Ihr sonst nur die Vorlage für die Bots liefern würdet. IHR MÜSST DESHALB INDIVIDUELL ABÄNDERN. Das hier ist also nur als ein BEISPIEL und als EINE von vielen Möglichkeiten zu werten.

Alles klar?

heinerle
08.03.2006, 22:51
... Wenn Du ein Problem mit meinen Aussagen hast, dann schlage doch bitte selbst mal was Vernünftiges vor ...
Ich habe nur ein Problem damit, daß Du Deine geheime Variable als die absolut einzige Abhilfe gegen Bots darstellst und will davor warnen, daß diese kein Hindernis für etwas intelligentere Bots ist.

Wie gesagt, ich habe meine Erfahrungen hauptsächlich aus Kontakt-Formularen, die von Spambots auf Verwundbarkeit untersucht werden. Daher kann ich definitiv sagen daß die nächste Stufe der Bots durch Dein $bot=false nicht aufgehalten werden.

Diese grasen die Webseiten nach Links ab und folgen allen hrefs (selbst die callto:-Links von Skype finden sich im Logfile), daher wird Dein
<a href="$PHP_SELF?action=add&bot=false..."> auf der Eingangsseite kein großes Hindernis darstellen. Und das

<input name="bot" type="hidden" id="bot" value="false"> läßt sich dann direkt aus dem Formular herauslesen, wie oben beschrieben (http://www.antispam-ev.de/forum/showpost.php?p=54647&postcount=13).

Ich will Deinen Vorschlag ja auch gar nicht schlechtreden (alles was hilft ist willkommen), aber das hätte man mit weniger Worten und dafür den konkreten Beispielen (Zeilen 70-73, 146, 195 und 424 des von Dir modifizierten Skriptes) einfacher haben können.

So ist leider der ganze Thread etwas entgleist. Und eigentlich wollen wir hier ja alle das gleiche: Spam bekämpfen und uns nicht gegenseitig anpöbeln.

heinerle
09.03.2006, 09:14
Ich kann auch den Code hier posten, bezweifle aber, daß Du das überhaupt verstehen würdest... In Deinen Aussagen befinden sich (im Gegensatz zu meinen) keinerlei fundierte Erkenntnisse, noch irgendwelche Lösungsansätze zum eigentlichen Problem. Du bezweifelst nur alles, ohne wahrscheinlich wirklich verstanden zu haben, was Du da bezweifelst.

Als ich heute morgen mal wieder besonders wenig Ahnung hatte :D ist mir aufgefallen, daß man Dein Skript leicht zum Gästebuch-Spamming durch Menschen mißbrauchen kann (wiederholte Eintragungen via Browser ohne Umweg über das Formular). Du prüfst bei submit nicht, ob das Skript mit POST aufgerufen wurde und ermöglichst somit Aufrufe wie
http://www.l*.*/gbook/*.php?action=submit&bot=false&in[name]=heinerle&in[message]=Eintrag%20mit%20GET&in[http]=http%3a%2f%2fwww%2eantispam%2ede%2fforum%2fshowthread%2ephp%3fgoto%3dnewpost%26 t%3d10322
(die Domain und den Skriptnamen habe ich zum Schutz Deines Kunden unkenntlich gemacht)
Das funktioniert nicht nur theoretisch, sondern auch praktisch, wovon Du Dich im Gästebuch überzeugen kannst.

Abhilfe:
(der besseren Übersicht halber nur Zeilennummer und Code, kein komplettes diff-Skript)

Zeile 43 des von Dir modifizierten Skriptes ändern von


if ($action=="submit") // Add an action
in

if (($action=="submit") && ($_SERVER['REQUEST_METHOD'] == 'POST')) // Add an action
(wurde auch schon mal hier (http://www.antispam-ev.de/forum/showpost.php?p=45550&postcount=8) behandelt).

Oder Du baust die POST-Abfrage ähnlich wie die $bot-Abfrage ab Zeile 70 ein:


// modified by heinerle 2006 - simple "GET block"
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header("Location: $PHP_SELF");
exit;
}


Außerdem würde ich (obwohl ich nichts davon verstehe) den Namen des Skriptes ändern, hier liest auch "der Feind" mit.

Tut mir leid, daß ich nicht eher konstruktiv werden konnte, aber ohne konkreten Code ist das nun mal schwierig.

homer
09.03.2006, 10:25
if (($action=="submit") && ($_SERVER['REQUEST_METHOD'] == 'POST')) // Add an action
Nachdem auch ich zu den völlig Ahnungslosen zähle, hier mein Vorschlag:

if ($_POST['action'] == 'submit') { ... }
Das kann man bequem auch im Safe Mode machen, da die automatische Variablenbelegung von PHP ja auch nicht so viel genutzt werden soll.

Windwalker
09.03.2006, 10:53
Komisch nur, daß die dezeitigen Bots (viagra, casino, phentemine) das überhaupt garnicht beherschen. Die sind einfach nicht in der Lage da irgendwas zu "faken".

Bist Du sicher, daß das ganze nicht Deiner Phantasie entspringt?
Poste doch bitte mal die Log-Ausschnitte und die Einträge hier.

Dann könntest Du mich eventuell überzeugen...

Andere Frage: Bist Du Dir wirklich sicher, daß du es richtig gemacht hast mit einer zusätzliche Variable? Es gibt nämlich 1000 Arten es falsch zu machen.

Hab wirklich alles slebst programmiert. Wie du kenne ich mich auch etwas aus. ;)

Hier ein Auszug als Beispiel aus dem Log vom Sonntag.

82.83.191.163 - - [05/Mar/20xx:xx:xx:01 +0100] "GET /Bilder/sonstige/WormsRuck_klein.jpg HTTP/1.1" 200 9500 "http://www.rc-worms.de/Bilder/sonstige_bilder.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)"
82.83.191.163 - - [05/Mar/20xx:xx:xx:01 +0100] "GET /includes/stylesheet.css HTTP/1.1" 200 603 "http://www.rc-worms.de/Bilder/sonstige_bilder.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)"
82.83.191.163 - - [05/Mar/20xx:xx:xx:01 +0100] "GET /pics/ball_leer.gif HTTP/1.1" 200 861 "http://www.rc-worms.de/Bilder/sonstige_bilder.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)"
82.83.191.163 - - [05/Mar/20xx:xx:xx:01 +0100] "GET /pics/drache_bg.gif HTTP/1.1" 200 7715 "http://www.rc-worms.de/Bilder/sonstige_bilder.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)"
68.142.250.93 - - [05/Mar/20xx:xx:xx:20 +0100] "GET /robots.txt HTTP/1.0" 404 208 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
68.142.249.165 - - [05/Mar/20xx:xx:xx:21 +0100] "GET /news/030329.php HTTP/1.0" 200 2975 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
213.249.155.240 - - [05/Mar/20xx:xx:xx:40 +0100] "POST /insert_guestbook.php HTTP/1.0" 200 50683 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon)"
66.207.120.227 - - [05/Mar/20xx:xx:xx:41 +0100] "GET /insert_guestbook.php HTTP/1.1" 200 51061 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0"
66.249.72.14 - - [05/Mar/20xx:xx:xx:05 +0100] "GET /news.php?linknumber=5&uebergabe=3 HTTP/1.1" 200 77280 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.14 - - [05/Mar/20xx:xx:xx:07 +0100] "GET /news.php?linknumber=5&uebergabe=37 HTTP/1.1" 200 77890 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.14 - - [05/Mar/20xx:xx:xx:09 +0100] "GET /news.php?linknumber=5&uebergabe=47 HTTP/1.1" 200 75915 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"


In der Mitte siehst du einen einzelnen Eintrag, den Submit ins Gästebuch.




Andere Frage: Bist Du Dir wirklich sicher, daß du es richtig gemacht hast mit einer zusätzliche Variable? Es gibt nämlich 1000 Arten es falsch zu machen.

Mittlerweile denke ich, dass ich auf dem richtigen Weg bin, da der Zufallscode bei mir nicht mehr übermittelt wird, sondern auf dem Server verbleibt.
So taucht er beim POST nicht als Variable auf.

staschi
09.03.2006, 14:21
ich möchte einer des öfteren hier geäusserten mutmassung eine andere entgegensetzen. ich habe einige gb in betrieb - unter anderem für kunden individuell programmierte und auch bei einem hb-dienst, dessen scripte wir allerdings nicht veröffentlicht haben. alle sind betroffen. d.h. die spammer analysieren nicht unbedingt veröffentlichten php oder asp code. ich nehme an, dass das alles automatisch läuft. es dürfte ja im grunde auch kein grosses problem sein.
1. man crawlt webseiten
2. man sucht nach formularen und analysiert den action-tag
3. man analysiert die felder des formulars
4. man führt ein erste matchen anhand der feldnamen und evtl. benachbartem html durch um die bedeutung (email, betreff, nachricht, usw.) zu erfahren
5. man startet einen post für die einzelnen felder mit jeweils einem string als inhalt, der dem feldnamen entspricht und jeweils einer url.
6. man analysiert das geästebuch und sucht nach den geposteten feldnamen bzw. url
7. man speichert url, action-url, und die zuordnung der feldnamen inkl. der überprüfung, ob die felder urls enthalten können bzw. welche bedeutung sie haben
8. man mach 5 nun regelmässig mit viagra-urls

teilweise sind gästebücher befallen, die special-interest sind, hier würde sich niemand die mühe machen für 3-4 besucher händisch die site zu analysieren.

Spastispam
16.03.2006, 20:00
Als ich heute morgen mal wieder besonders wenig Ahnung hatte :D ist mir aufgefallen, daß man Dein Skript leicht zum Gästebuch-Spamming durch Menschen mißbrauchen kann (wiederholte Eintragungen via Browser ohne Umweg über das Formular). Du prüfst bei submit nicht, ob das Skript mit POST aufgerufen wurde und ermöglichst somit Aufrufe wie
http://www.l*.*/gbook/*.php?action=submit&bot=false&in[name]=heinerle&in[message]=Eintrag%20mit%20GET&in[http]=http%3a%2f%2fwww%2eantispam%2ede%2fforum%2fshowthread%2ephp%3fgoto%3dnewpost%26 t%3d10322
(die Domain und den Skriptnamen habe ich zum Schutz Deines Kunden unkenntlich gemacht)
Das funktioniert nicht nur theoretisch, sondern auch praktisch, wovon Du Dich im Gästebuch überzeugen kannst.

Abhilfe:
(der besseren Übersicht halber nur Zeilennummer und Code, kein komplettes diff-Skript)

Zeile 43 des von Dir modifizierten Skriptes ändern von


if ($action=="submit") // Add an action
in

if (($action=="submit") && ($_SERVER['REQUEST_METHOD'] == 'POST')) // Add an action
(wurde auch schon mal hier (http://www.antispam-ev.de/forum/showpost.php?p=45550&postcount=8) behandelt).

Oder Du baust die POST-Abfrage ähnlich wie die $bot-Abfrage ab Zeile 70 ein:


// modified by heinerle 2006 - simple "GET block"
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header("Location: $PHP_SELF");
exit;
}


Außerdem würde ich (obwohl ich nichts davon verstehe) den Namen des Skriptes ändern, hier liest auch "der Feind" mit.

Tut mir leid, daß ich nicht eher konstruktiv werden konnte, aber ohne konkreten Code ist das nun mal schwierig.

Was für ein ausgemachter Blödsinn.

Ich habe doch eindeutig dargelegt, dass dieses Script nicht von mir ist, sondern Open Source PHP. Es ist sozusagen exemplarisch und die Variablen sowie der Name der Datei lauten im "Original" völlig anders.

Ausserdem habe ich doch auch groß und breit alles immer wieder erklärt, das mit dem Ändern des Skriptnamens, den verschiedenen Möglichkeiten und so weiter.

Ich glaube fast, Du willst es garnicht kapieren und legst es daruf an hier sinnlos rumzustreiten.

Tschüss dann also.

Spastispam
16.03.2006, 20:03
Hab wirklich alles slebst programmiert. Wie du kenne ich mich auch etwas aus. ;)

Hier ein Auszug als Beispiel aus dem Log vom Sonntag.

82.83.191.163 - - [05/Mar/20xx:xx:xx:01 +0100] "GET /Bilder/sonstige/WormsRuck_klein.jpg HTTP/1.1" 200 9500 "http://www.rc-worms.de/Bilder/sonstige_bilder.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)"
82.83.191.163 - - [05/Mar/20xx:xx:xx:01 +0100] "GET /includes/stylesheet.css HTTP/1.1" 200 603 "http://www.rc-worms.de/Bilder/sonstige_bilder.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)"
82.83.191.163 - - [05/Mar/20xx:xx:xx:01 +0100] "GET /pics/ball_leer.gif HTTP/1.1" 200 861 "http://www.rc-worms.de/Bilder/sonstige_bilder.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)"
82.83.191.163 - - [05/Mar/20xx:xx:xx:01 +0100] "GET /pics/drache_bg.gif HTTP/1.1" 200 7715 "http://www.rc-worms.de/Bilder/sonstige_bilder.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90)"
68.142.250.93 - - [05/Mar/20xx:xx:xx:20 +0100] "GET /robots.txt HTTP/1.0" 404 208 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
68.142.249.165 - - [05/Mar/20xx:xx:xx:21 +0100] "GET /news/030329.php HTTP/1.0" 200 2975 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
213.249.155.240 - - [05/Mar/20xx:xx:xx:40 +0100] "POST /insert_guestbook.php HTTP/1.0" 200 50683 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon)"
66.207.120.227 - - [05/Mar/20xx:xx:xx:41 +0100] "GET /insert_guestbook.php HTTP/1.1" 200 51061 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0"
66.249.72.14 - - [05/Mar/20xx:xx:xx:05 +0100] "GET /news.php?linknumber=5&uebergabe=3 HTTP/1.1" 200 77280 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.14 - - [05/Mar/20xx:xx:xx:07 +0100] "GET /news.php?linknumber=5&uebergabe=37 HTTP/1.1" 200 77890 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.14 - - [05/Mar/20xx:xx:xx:09 +0100] "GET /news.php?linknumber=5&uebergabe=47 HTTP/1.1" 200 75915 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"


In der Mitte siehst du einen einzelnen Eintrag, den Submit ins Gästebuch.




Mittlerweile denke ich, dass ich auf dem richtigen Weg bin, da der Zufallscode bei mir nicht mehr übermittelt wird, sondern auf dem Server verbleibt.
So taucht er beim POST nicht als Variable auf.

Erm...
Wenn man das Skript "insert_guestbook.php" nennt, dann braucht man sich nun wirklich nicht wundern....

Dieser Dateiname ist nämlich sozusagen ein "offizielles" Suchpattern für die Bots...

Tsss.

Spastispam
16.03.2006, 20:13
ich möchte einer des öfteren hier geäusserten mutmassung eine andere entgegensetzen. ich habe einige gb in betrieb - unter anderem für kunden individuell programmierte und auch bei einem hb-dienst, dessen scripte wir allerdings nicht veröffentlicht haben. alle sind betroffen. d.h. die spammer analysieren nicht unbedingt veröffentlichten php oder asp code. ich nehme an, dass das alles automatisch läuft. es dürfte ja im grunde auch kein grosses problem sein.
1. man crawlt webseiten
2. man sucht nach formularen und analysiert den action-tag
3. man analysiert die felder des formulars
4. man führt ein erste matchen anhand der feldnamen und evtl. benachbartem html durch um die bedeutung (email, betreff, nachricht, usw.) zu erfahren
5. man startet einen post für die einzelnen felder mit jeweils einem string als inhalt, der dem feldnamen entspricht und jeweils einer url.
6. man analysiert das geästebuch und sucht nach den geposteten feldnamen bzw. url
7. man speichert url, action-url, und die zuordnung der feldnamen inkl. der überprüfung, ob die felder urls enthalten können bzw. welche bedeutung sie haben
8. man mach 5 nun regelmässig mit viagra-urls

teilweise sind gästebücher befallen, die special-interest sind, hier würde sich niemand die mühe machen für 3-4 besucher händisch die site zu analysieren.


Wenn die Bots das alles machen würden, dann wäre wahrscheinlich demnächst der Nobel-Preis für Botprogrammierer fällig...

Das Problem ist wahrscheinlich, daß Ihr alle vorgefertigte Patterns und Submitverfahren verwendet.

Nochmal: Die (derzeitigen) Bots machen alle einen EINZIGEN Aufruf - nämlich den Submit-Call. Da wird nix analysiert (wie das ein Mensch beispielsweise tun würde). Dies kann man eindeutig sehen wenn man mal die Logfiles analysiert.

Schon garnicht werden da irgendwelche serverseitigen hochkomplexen Auswertungsmechanismen vorgenommen. Jedenfalls widerspricht das komplett meinen bisherigen Erfahrungen als Webdesigner und Hardcore Programmierer (C, C++, Pascal, Assembler).

Ich bestreite ja nicht, daß sowas möglich wäre, aber ist es momentan nicht.

Bie Bots rufen einfach alle möglichen potentiellen Submit Skripte mit einer ganzen Flut von möglichen Variablen auf, in der Hoffnung daß das irgendwie durchgeht. Würden die wirklich so "intelligent" programmiert sein, dann könnten sie nämlich schon vorher sehen, daß sie bereits hundertfach im Gästebuch verewigt sind und die Aktion dann lassen, weil das eigentliche Ziel (Page Ranking) dann bereits erreicht ist. Auch würde dann wohl im Text etwas Intelligenteres stehen al sinnlos zusammengewürfelter Schwachsinn, nicht wahr?

Ich bin zwar auch Sience Fiction Fan, soweit würde ich aber in der Realität mit meiner Phantasie dann doch nicht gehen.

heinerle
16.03.2006, 23:02
Ich habe doch eindeutig dargelegt, dass dieses Script nicht von mir ist, sondern Open Source PHP. Es ist sozusagen exemplarisch und die Variablen sowie der Name der Datei lauten im "Original" völlig anders.


Du hast aber hier (http://www.antispam-ev.de/forum/showpost.php?p=54717&postcount=27) geschrieben, daß die Modifikation von Dir ist:

Hier ist der Code des Open Source PHP Gästebuches, welches ich kürzlich für einen meiner Kunden erfolgreich modifiziert habe.
...
Die Modifikation nutzt ganz einfach das von mir hier vorgeschlagene Prizip der "zusätzlichen versteckten Variable".
Und diese Modifikation war durchaus verbesserungswürdig, weil sie die genannte Umgehung der Sicherungsmaßnahmen bot. Selbst das Floodprotect ließ sich überlisten.

Windwalker
17.03.2006, 02:57
Erm...
Wenn man das Skript "insert_guestbook.php" nennt, dann braucht man sich nun wirklich nicht wundern....

Dieser Dateiname ist nämlich sozusagen ein "offizielles" Suchpattern für die Bots...

Tsss.

Naja, immerhin habe ich es geschafft, durch meine letzte Verbesserung seit 1,5 Wochen kein Spam mehr zu haben.
Ohne, dass ich meine PHP-Datei umbenennen musste, sie trägt immer noch ihren logischen Namen "insert_guestbook.php".

Da ich mir auch bei abgefangenen Einträgen eine Mail zuschicken lasse, sehe ich, wie oft mir ein "Phentermine" oder "Online Casino" Eintrag ins Netz geht.

Okay, der Name hat vielleicht dazu beigetragen, dass mein Gästebuch leichter gefunden wurde und ich halt ne Zeit lang unter viel Spam litt, aber im Moment kommt kein Bot mehr um meine Schutzmaßnahme drumherum.
Und das, ohne dass ich meine Gästebuch-Datei unter einem "Decknamen" verstecken musste.

heinerle
17.03.2006, 09:20
...
Okay, der Name hat vielleicht dazu beigetragen, dass mein Gästebuch leichter gefunden wurde und ich halt ne Zeit lang unter viel Spam litt, aber im Moment kommt kein Bot mehr um meine Schutzmaßnahme drumherum.
Und das, ohne dass ich meine Gästebuch-Datei unter einem "Decknamen" verstecken musste.

Ist eh die beste Methode. Was der Bot nicht sieht kann er auch nicht angreifen. Und dann ist es auch egal wie das Skript heißt.

Spastispam
18.05.2006, 16:28
Du hast aber hier (http://www.antispam-ev.de/forum/showpost.php?p=54717&postcount=27) geschrieben, daß die Modifikation von Dir ist:

Und diese Modifikation war durchaus verbesserungswürdig, weil sie die genannte Umgehung der Sicherungsmaßnahmen bot. Selbst das Floodprotect ließ sich überlisten.

Alles kompletter Quatsch.

Bei den "Modifikationen" von mir handelt es sich lediglich um das Einsetzen einer zusätzlichen Variable (an insgesamt 4 Stellen - um die Funktionalität zu erhalten), wie ich das bereits beschrieben hatte. Die bedeutet in keiner Weise irgendeine neue "Umgehungsmöglichkeit" von Irgendetwas... LOL. Ich habe nämlich am Programmfluß nichts verändert.

Der Code stammt von Jemanden, der übrigens in der Datei ausdrücklich namentlich genannt ist. Pflaum den an, wenn Du meinst, daß er es verdient hat... Allerdings warten wir dann auch auf Deinen "musterexemplarischen Supercode" hier, damit Du uns dann auch zeigen kannst, was für ein Genie Du doch bist ...

Ich persönlich würde dieses Gästebuch meinen Kunden jedenfalls (aus gewissen Gründen) nicht unbedingt empfehlen - der Kunde hatte dies selbst installiert. Im übrigen wurde es inzwischen (aus schon erwähnten gewissen Gründen) auch komplett ausgetaucht ...

:sick:

Ironwhistle
27.06.2006, 15:07
Interessante Seite - bin eigentlich nur hier weil ich seit einigen Tagen ebenfalls dem Phänomen Gästebuchspam unterlegen bin/war.

Zur Sache - ich weis nicht wie es bei euch aussieht, aber bei mir erfolgte der Spameintrag nach dem Muster


[*url=http://www.spammersdomain.tdl] Spamersdescription[*/url]

Und das gleich in vielfacher Ausführung. Die Formularfelder haben so fantasievolle Namen wie "email", "message" und "name" - also Dinger die durch einen bot leicht ausgefüllt werden können.
Das von mir verwendete GB habe ich selbst mal geschrieben - es verwendet keinen UBB Code in seiner Syntax, weshalb die Spameinträge auch entsprechend aussehen. Für mich persönlich bin ich zu der Lösung gekommen das Problem mittels strstr zu lösen.

Mag nicht die eleganteste Lösung sein, aber vielleicht kann jemand was damit anfangen - speichert in einem die Verbindungsdaten ab...



if (strstr($message, "url=http"))
{
echo"<h1>Hello Mr. Spammer!</h1>
<h2>Your IP and host are locked.</h2><hr>
<b>Date of spam entry:</b> $datum<br>
<b>Locked IP:</b> $ip<br>
<b>Locked Host:</b> $host<hr>
w.g. Iron";

$dn="verzeichnis/spammer.dat";
$old=file_get_contents($dn);
$dz=fopen($dn,"w");
fwrite($dz,":<spameintrag><datum>$datum</datum>\n<idnummer>$ip</idnummer>\n<isp>$host</isp></spam>\n\n".$old);
fclose($dz);
}

else{
Normaler Gästebucheintrag
}


Grüße
Iron

Sirius
27.06.2006, 16:14
Das ist eine gute Idee und kommt einer Blacklist von Worten nahe.

Leider lesen die Bots die Antwort des Gästebuchs nicht :-(
Als Ausgleich könnte man eine kleine Modifikation am Code vornehmen, der den Bot ausbremst bzw. das Wiederkommen vergrault.


if (strstr($message, "url=http") || strstr($message, "<a href="))
{
echo"<h1>Hello Mr. Spammer!</h1>
sleep(60);
...Die (60) ist nur ein Vorschlag.

heinerle
27.06.2006, 16:22
Das sleep(60) sollte man dann aber noch vor die erste Ausgabe des Skriptes verlagern, damit der Bot die eingestellte Zeit auch wirklich auf die Header wartet, sonst hat er bereits sein "200 OK" und macht munter weiter, ohne weitere Ausgaben auszuwerten ...

Ironwhistle
27.06.2006, 16:56
Stimmt, die Bots lesen das Zeug nicht und es basiert tatsächlich auf einem Wortfilter - aber meine anderen Gäste lesen den Mist ebenfalls nicht, und darauf kommt es mir letztlich an. Der freundliche Hinweis ist lediglich für die "Handwerker" unter den Spamern. Ich habe das ganze gerade nochmal überarbeitet und ein wenig erweitert (weitere Vorschläge sind mir immer willkommen!).



$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($ip);
$system = $_SERVER['HTTP_USER_AGENT'];
$datum = date("D, d M - H:i:s");

function spamproof()
{
echo"sleep(60);
<h1>Hello Mr. Spammer!</h1>
<h2>Your IP and host are locked.</h2><hr>
<b>Date of spam entry:</b> $datum<br>
<b>Locked IP:</b> $ip<br>
<b>Locked Host:</b> $host<hr>";
$dn="verzeichnis/spammer.dat";
$old=file_get_contents($dn);
$dz=fopen($dn,"w");
fwrite($dz, ":<spameintrag>\n<datum>$datum</datum>\n<ipnummer>$ip</ipnummer>\n<isp>$host</isp>\n<system>$system</system>\n</spam>\n"."
".$old);
fclose($dz);
}

Die Funktion verhindert erstmal das der Spameintrag in der regulären Gästebuchdatei erscheint und liefert gleichzeitig Datum, Uhrzeit und die verwendete IP Nummer bzw. den Host des Spamers in eine separierte Datei.

Der Aufruf der Funktion erfolgt nach einem klick auf den Submit Button meines GBs:


if($submit)
{

# Überprüfung der Angaben im Messagefeld

if(strstr($message, "cialis" OR "viagra")) spamproof();
elseif(strstr($message, "phentermine" OR "blackjack")) spamproof();
elseif(strstr($message, "online poker" OR "casino")) spamproof();

# Wenn kein Spambegriff drinsteht, dann der normale Ablauf für den Eintrag

else{ Ins Gästebuch eintragen }

}

Es kommt hierbei alleine darauf an die if else Abfrage immer wieder auf dem Laufenden zu halten. Cookies würde ich nicht einsetzen weil doch einige User diese abschalten...

p.s.
Mit dem Sleep ist eine gute IDee!! :)

Ironwhistle
29.06.2006, 10:21
So, das Script habe ich nochmal komplett überarbeitet und auf dem lokalen Server (Apache) läuft es reibungslos. Braucht keine MySQL, lediglich PHP ab 4.x sollte installiert sein. Falls Fragen bestehen, einfach fragen... :)

Bei einem Spameintrag sieht das ganze so aus: Ausgabe (http://www.silentwoods.de/spamstoper.jpg)

1. Funktion Spamproof

Die Ausgabe kann natürlich verändert oder erweitert werden. Man kann auch ganz darauf verzichten...


function spamproof()
{

include('inc/function.date.inc');
include('inc/function.securecheck.inc');


/* Ausgabe für Spammer */

echo"<html>\n
<head>\n
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">\n
<link rel=\"stylesheet\" href=\"system.css\" type=\"text/css\">\n
</head>\n
<body>\n
<h1>Hello Mr. Spammer!</h1>\n
<h2>Your IP and host are locked.</h2><hr>\n
<b>Date of spam entry:</b> $datum<br>\n
<b>Locked IP:</b> $ip<br>\n
<b>Locked Host:</b> $host<br>\n
<b>Port:</b> $port<br>\n
<b>Used System:</b> $system<br>\n
<b>Come from:</b> $herkunft<br>\n
<b>Used String:</b> $abfrage<br>\n
<b>Request with:</b> $request<br>\n
<b>Requested URL:</b> $forderung\n
</body>\n
</html>\n";

/* Datum, IP, ISP und System in Logdatei schreiben */

$dn="verzeichnis/spammer.rdf";
$old=file_get_contents($dn);
$dz=fopen($dn,"w");
fwrite($dz, ":<spameintrag>\n<datum>$datum</datum>\n<ipnummer>$ip</ipnummer>\n<isp>$host</isp>\n<system>$system</system>\n<herkunft>$herkunft</herkunft></spam>\n"."
".$old);
fclose($dz);
}

Die function.date.inc - Ich persönlich finde es netter wenn Montag statt Mon in der Ausgabe erscheint. Muss aber nicht sein. Alternativ kann man sich auch auf die erste Zeile beschränken: $datum = date("D, d M - H:i:s");


<?
$datum = date("D, d M - H:i:s");
$datum = str_replace("Mon","Montag",$datum);
$datum = str_replace("Tue","Dienstag",$datum);
$datum = str_replace("Wed","Mittwoch",$datum);
$datum = str_replace("Thu","Donnerstag",$datum);
$datum = str_replace("Fri","Freitag",$datum);
$datum = str_replace("Sat","Samstag",$datum);
$datum = str_replace("Sun","Sonntag",$datum);
$datum = str_replace("Jan","Januar",$datum);
$datum = str_replace("Feb","Februar",$datum);
$datum = str_replace("Mar","März",$datum);
$datum = str_replace("Apr","April",$datum);
$datum = str_replace("May","Mai",$datum);
$datum = str_replace("Jun","Juni",$datum);
$datum = str_replace("Jul","Juli",$datum);
$datum = str_replace("Aug","August",$datum);
$datum = str_replace("Sep","September",$datum);
$datum = str_replace("Oct","Oktober",$datum);
$datum = str_replace("Nov","November",$datum);
$datum = str_replace("Dec","Dezember",$datum);
?>

Die function.securecheck.inc - kann beliebig erweitert werden....


<?php
$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($ip);
$port = $SERVER['REMOTE_PORT'];
$system = $_SERVER['HTTP_USER_AGENT'];
$herkunft = $_SERVER['HTTP_REFERER'];
$abfrage = $_SERVER['QUERY_STRING'];
$request = $_SERVER['REQUEST_METHOD'];
$forderung = $_SERVER['REQUEST_URI'];
?>

Aufgerufen wird das Ganze sobald jemand einen Gästebucheintrag macht:


if($gaestebucheintrag)

/* SCHRITT 1: Beitrag auf Spam prüfen */
/* Wenn Spam, dann Abbruch und Logg */

if(strstr($message, "cialis")) spamproof();
elseif(strstr($message, "viagra")) spamproof();
elseif(strstr($message, "phentermine")) spamproof();
elseif(strstr($message, "blackjack")) spamproof();
elseif(strstr($message, "online poker")) spamproof();
elseif(strstr($message, "casino")) spamproof();
elseif(strstr($message, "buy online")) spamproof();
elseif(strstr($message, "url=http")) spamproof();

# Wenn kein Spambegriff drinsteht, dann der normale Ablauf für den Eintrag

else{
Hier der Codeblock für normale Einträge
}

Spam zeichnet sich durch eines aus - eine immer wiederkehrende Syntax. Hier liegt der Schlüssel um Spam zu vermeiden, wie in einem Badwortfilter. Eventuell kann man noch mit einer Variologik ähnliche Begriffe ausfiltern, aber mit persönlich reicht das vorliegende erstmal.

Ich hoffe das dem ein oder anderem das kleine Script ein wenig weiter hilft... ;)

Grüße
Iron

bobmarlex
10.07.2006, 17:15
hallo zusammen
auch uns hats jetzt auch, bzw. schon seit einiger Zeit getroffen. Hier mal der Inhalt:

buy viagra buy viagra generic cialis generic cialis generic viagra [url=http://suppliesf.info/#viagra]generic viagra[/ur


Es wird wohl, wie oft erwähnt, der /Standard-) submit-code ausgelesen, wenn das phpscript nicht gecodet/angepasst wurde.Zweifelsfrei handelt es hier um bots/harvester, wie auch immer, jedenfalls generierte spasm. Anfangs gingen sie von weblogs aus, das scheint sich geändert zu haben, seit wir folgende Aktion durchführten:

Unser Webmaster hat sich aufgemacht und alle „guestbook“-Einträge im Skript geändert auf „gabu“.

http://burgtor.de/index.php?templateid=gabu

Ergebnis:
Es war 2 Tage Ruhe, dann ging es wieder los, allerdings nicht mehr mit der Intensität 24/Tag (1 spam pro stunde). Es ist jetzt kein bestimmter Intervall mehr auszumachen, aber wir werden weiterhin und immer mit dem selben sch… belästigt.

Details:
• Titel immer gleich ICQ
• Immer die gleichen e-Mailadressen:
o viagra [at] levitra1.com
o levitra [at] cialis1.com
o cialis [at] viagra1.com
• Whois der Domänen:
o In den untersuchten spasms
 Hoster sehr oft (!?) www_networksolutions.com
 Registrar: Immer Russen (bei www_networksolutions.com)
Beispiele: http://www_zjqyzx.com/discount-cialis/
http://www_zjqyzx.com/buy-cialis-online/
 Zum Kauf anegebotene Websites, z.B. bristolmusicscene.com
Wir nutzen das (zugegebn veraltete) 1-2-3CMS, haben aber, wie bereits erwähnt, gecodet.....:lil:
grüsse
bob

MeckieMesser
19.07.2006, 15:48
Ne Baduser-Datei. Kann man auch mit den e-mail Adressen machen



$pfad = "baduser.txt";
$xf = file($pfad);
$results = explode("|", $xf[0]);


$name = $_POST["name"];
$email = $_POST["email"];
$inhalt = $_POST["inhalt"];

$name = trim($name);


if (in_array($name, $results))

{ exit; }

else { !Hier euer GB Script.! }





Dazu einfach baduser.txt erstellen.

Sieht so aus ("|" Am Ende nicht Vergessen!!!):


cialis|viagra|levitra|valium|


Ne Frage: Sicher immer die gleichen e-Mail Adressen?

Gruß
Meckie

Q__
19.07.2006, 22:36
Sieht so aus ("|" Am Ende nicht Vergessen!!!):


Gerade wenn das Pipe als Trenner am Schluss steht, erzeugst Du ein leeres Array-Element zusätzlich....

Möchtest Du denn auch auf "leer" testen?


Gruß,
Q.

MeckieMesser
19.07.2006, 23:59
Wenn ich das Pipe weglasse, wird der letzte Name nicht berücksichtigt.
Hab's probiert.

heinerle
20.07.2006, 08:34
Wenn ich das Pipe weglasse, wird der letzte Name nicht berücksichtigt.
Hab's probiert.
Sollte nach Definition aber nicht so sein. Was gibt denn
print_r($results); aus?

Breaker
22.07.2006, 00:33
if(strstr($message, "cialis" OR "viagra")) spamproof();
elseif(strstr($message, "phentermine" OR "blackjack")) spamproof();
elseif(strstr($message, "online poker" OR "casino")) spamproof();



Wenn man das jetzt noch in ein array packt (aus text oder DB gelesen), würde es mehr sinn machen und der code bleibt klein ;)

itschi128
24.07.2006, 11:17
Hallo..

habe mich hier mal angemeldet um auch meine Lösung zu dem Problem zum Besten zu geben.

Ich benutze ein selbst geschriebenes Gästebuchscript (php,mysql) und hatte auch jeden Tag zig dumme Einträge von Bots.

Nun habe ich ein Script das zählt wieviele Seiten der Besucher auf meiner Page überhaupt aufgerufen hat (die Bots benutzen ja immer nur die Formularseite und die Submitseite) der echte Besucher benötigt ja erstmal 3 Klicks (Seite erst aufrufen, dann Gästebuch aufrufen, dann neuen verfassen).

Ich hab allerdings hierbei noch den Vorteil das ich ohnehin ein solches Script laufen habe welches die sozusagen die Pages per User zählt.

Seit dem ist Ruhe ;-)

MeckieMesser
24.07.2006, 17:28
Die Baduser hat kein Sinn mehr gemacht, da die Spams zu vielfältig wurden.
Hab jetzt ein Script, was zur Eingabe eines Codes fragt. Zwar nicht grafisch, aber es reicht. :)

Kleine Frage: Können die Bots einen bestimmten Teil (Zahl die zufällig per php erzeugt wird) meiner Webseite einlesen und dann wieder in ein Formularfeld einfügen?

Ich hab festgestellt, dass die Spamer recht schnell aufgeben, sobald man sich in Form eines besseren Scriptes wehrt.

MeckieMesser
24.07.2006, 18:43
H

Nun habe ich ein Script das zählt wieviele Seiten der Besucher auf meiner Page überhaupt aufgerufen hat (die Bots benutzen ja immer nur die Formularseite und die Submitseite) der echte Besucher benötigt ja erstmal 3 Klicks (Seite erst aufrufen, dann Gästebuch aufrufen, dann neuen verfassen).



So könnte man ja auch einfach ne Variable weitergeben, anstatt die Seiten zu zählen.

itschi128
25.07.2006, 03:31
So könnte man ja auch einfach ne Variable weitergeben, anstatt die Seiten zu zählen.

Ich wollte auch nur einen Lösungsweg zeigen der sicher einfach ist und effektiv.
Ebenfalls wird der Benutzer nicht mit irgendwelchen Sicherheitscodes "genervt". Wenn man sowieso eine Besucherstatistik führt kann man das gut mit einbauen.

Gruß Itschi

Q__
01.08.2006, 16:45
Einer dieser Bots benutzt den User-Agent:


PussyCat 1.0, Murzillo compatible

Soviel Entgegenkommen hääte ich von einem Badbot nicht erwartet :D :D :D

Ist der bei Euch auch schon irgendwo aufgeschlagen???

(IP war übrigens 58.67.31.194, also China).

Gruß,
Q

Ironwhistle
15.08.2006, 11:51
Wenn man das jetzt noch in ein array packt (aus text oder DB gelesen), würde es mehr sinn machen und der code bleibt klein ;)Hey, ich lerne ja auch noch und bin weit davon entfernt wirklich ein Profi zu sein... ;)

Itzi
29.01.2007, 17:02
Ich habe mir auch ein paar Optionen überlegt.

1. Javascript:
Ein Timer ersetzt einen falschen Action Link im Formular durch einen richtigen (ca. 5 Sec. nach dem Aufruf des GB-Forms).
NT: Javascript muss aktiviert sein.

2. Code
Mit deinem generierten Bildcode überprüfen ob da wer sitzt.
NT: Benutzer müssen Code eingeben.

3. Session
Mit SessionVariablen überprüfen, ob das Surfverhalten das eines echten Menschen sein kann. (vgl. Seitenzähler)

Was sagt Ihr dazu?

Liquid-Sky-Net
29.01.2007, 18:28
Hi Itzi, willkommen im Forum bei Antispam.



Mit deinem generierten Bildcode überprüfen ob da wer sitzt.
NT: Benutzer müssen Code eingeben.

Falls Du damit Captchas (https://www.antispam-ev.de/wiki/Captcha) meinst, die sind schon längst überaltet. Ist kein Problem mehr für Bots. Lieber fragen, welche Farbe eine Zitrone oder Tomate hat ;)

Gruß Tom

exe
29.01.2007, 20:42
Falls Du damit Captchas (https://www.antispam-ev.de/wiki/Captcha) meinst, die sind schon längst überaltet. Ist kein Problem mehr für Bots. Lieber fragen, welche Farbe eine Zitrone oder Tomate hat ;)
Das stimmt so nicht. Gute Captchas sind immer noch nicht maschinenlesbar, wenn sie auch oft nicht mehr unbedingt menschenlesbar sind. ;) Außerdem hatte ich, obwohl ich nur primitivste Captchas nutze (keine verzerrte Schrift, ganz normaler Text), noch keinen Spamversuch der durch kam.

horus
29.01.2007, 21:29
Ich hatte bei angeschaltetem Captcha zwar keinen Spam durch Bots, aber es gibt immer wieder noch "Spaßvögel", die ihren Spam per Hand eintragen.

Ich hab in den von mir betreuten GBs einen Mix aus Blacklist/Badwordlist (verhindert, daß ein Eintrag überhaupt abgesetzt werden kann) Überprüfung mittels Cookie, ob der User vorher auf der Seite aktiv war und zufallsgesteuerten Formularfeldnamen im Einsatz.

Seit dem konnten die nervigen Captchas wieder abgeschaltet werden und es kommt fast kein Mülleintrag im GB durch.

Für den Fall das es doch vorkommt, ist das GB moderiert geschaltet.

Itzi
30.01.2007, 10:06
Hallo Tom,

ich hatte schon eine böse Vorahnung aber ich bin schon etwas erstaunt/enttäuscht dass die Spammer schon so weit sind.
Recht überreascht hat mich die zugegeben sehr kreative Methode die auf Wikipedia angeführt ist:

Eine technisch einfache Möglichkeit, den Captcha-Schutz zu umgehen, besteht darin, dass der Robot die eigentliche Erkennungsaufgabe an Menschen delegiert, alle anderen nötigen Schritte jedoch selbst durchführt. Ein Spammer richtete z. B. eine pornographische Web-Seite ein um von den Besuchern dieser Web-Seite ein Captcha lösen zu lassen, das aber eigentlich vom Anbieter eines E-Mail-Zugangs stammt. Unwissentlich lösten die Besucher der pornografischen Web-Seite für den Spammer die Captchas.

Was haltet ihr von Lösung 1 und 3? (oben)

Itzi
06.02.2007, 08:53
habs jetzt mit der Session-Geschichte versucht: Es wird einfach gezählt, ob er schon auf einer anderen Seite war.

Bisheriges Resultat (seit 30.1.): nur 2 von 306 gingen durch.
Bei den zwei könnte es sich um manuelle Einträge handeln, gegen die kann man eh kaum etwas machen, außer vielleicht abfragen ob zwei oder mehrere Links im Text enthalten sind.
Hab mich auch gefragt, ob man die standard Hompage-Felder mit den Links dann überhaupt braucht!? Damit wäre der Anreiz generell weg, GBs vollzuspammen.

Liquid-Sky-Net
06.02.2007, 08:59
Ich lasse ab sofort jeden neuen Gast einen 15-Zeilen Text abschreiben, denn solch eine Mühe macht sich kein Spammer. DAS IST SICHER! :D
Ich berichte Euch nächste Woche wie viele Neuanmeldungen ich hatte, bzw. ob sich überhaupt jemand angemeldet hat. *hrhr*

JuliaV
27.02.2007, 23:50
Hat jemand mit Ironwhistle's Rezept Erfolg gehabt? Sind die Spam-Attacken weniger geworden? Aber bei mir sind's eh POST-Zugriffe.

81.177.38.43 - - [27/Feb/20xx:xx:xx:07 +0100] "POST /skript.php HTTP/1.1" 200 5185 "http://www.domain.de/skript.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

Ich hab heute mal per hidden-Feld den aktuellen Timestamp übergeben und ihn im aufnehmenden Formular abgefragt (mit 30 Minuten Kulanz). Hatte schon gleich nach 3h wieder mehrere Spam-Einträge.

nitram0816
09.03.2007, 16:08
Ach ja: Wenn jemand sich fragen sollte: Wozu dient der ganze Wahnsinn überhaupt?

Vielleicht ist ja "page ranking" das Schlüsselwort.

Dann braucht man auch nur noch eins und eins zusammenzuzählen und weis von wem die ganze Sache ursprünglich ausgeht und zu welchem Zweck sie eigentlich dient ...

Hallo Spastispam,
page ranking ist nur ein kleiner Teil. Hauptsächlich geht es um Klicks und Einkäufe auf den verlinkten Seiten.

Habe heute einen Spammer da gehabt, der zum Glück immer mit derselben IP den Müll einträgt. Die Links verweisen auf ein irgendeinwort.blogspot.com Konto. Dort wird ein Javascript gehostet mit der eigentlichen Weiterleitung zu der Firma, die den Spammer beauftragt hat.

http://hlzf.info/m.js

Von dort aus geht es derzeit zu einem Kanadischen Pharmaunternehmen.
http://www.dengefallentueicheuchnicht.com/tds/?&ref=&aff=2318&campaignid=&cart=';

Man sieht die Partner-ID: [ID filtered]

Lösung zum Sperren einer einzelnen statischen IP:

<?php
if ($_SERVER['REMOTE_ADDR']=='190.7.79.254')
header('Location: wir-kriegen-dich.html');
?>

Nun zu den Spammern: Ich glaube nicht, dass die sich die Mühe machen, extra nach OpenSource Gästebücher zu suchen. Der Aufwand wäre viel zu groß. Da wird lediglich über Suchmaschinen nach .php Files gesucht. Diese kommen in die Adressdatenbank des Spam Scripts und werden einfach vom Script abgearbeitet. Deshalb auch Eintragungen in Login-Textfelder oder andere. Entweder es funktioniert oder auch nicht.

Lösung Captcha:
http://www.stoppt-den-spam.info/webmaster/captcha-tutorial/zahlen-cpatcha/captcha-php-script.html

Das bringt aber nur etwas, wenn der Spam über das Formular eingegeben wird. Meist werden die Werte direkt der gb-index.php übergeben, so dass das captcha nix bringt.

P.S. Bitte nicht gleich den in Sofia angemeldeten Herrn von hlzf.info http://www.afilias.info/cgi-bin/whois.cgi verdächtigen. Vielleicht hat der das Script gar nicht hochgeladen und sein Account wurde missbraucht.

Mal sehen wie sichs weiterentwickelt.

zergling
09.03.2007, 17:08
Auch ich hatte lange Zeit mit dem blogspot Müll & Co. zu kämpfen.

Da war an der Zeit ein kpl. neues Gästebuch mit diversen Schutzeinrichtungen zu schreiben.

Toi Toi Toi - bis jetzt ist absolute Ruhe.
Eine eingebaute Statistik erfasst die fehlgeschlagenen Versuche einen Eintrag zu platzieren. Derzeit sind es 4-6 täglich.

Meiner Meinung nach gibt es nicht das eine Allheilmittel um Spam abzuwehren, erst die Kombination verschiedener Mittel bringt den gewünschten Erfolg.

Aufgrund der Barrierefreiheit habe ich auf den Einsatz von Chaptas verzichtet.

Vorgehensweise:
Als erstes wird beim Aufruf der Eintragsseite eine Session generiert, die sich aus IP und Zeit zusammensetzt. Gespeichert wird diese in einem hidden-Feld und beim Versand verglichen.

Beim Versand des Formulares wird der Referer abgefragt um Quereinträge zu verhindern.

Desweiteren filtert eine Badwordliste enorm was weg - blogspot steht ganz oben auf der Liste.
Nach dem 3. Fehlversuch wird erfolgt ein Rauswurf auf die Startseite, sodas ein neuer Anlauf notwendig wäre.

Eine zwischengeschaltete Vorschauseite, die nochmals abgeschickt werden muß, dürfte auch einige Bots verwirren.

Im eigentlichen Beitrag kann die Menge der erlaubten URL´s festgelegt werden.

TLD´s in den URL´s können ebenfalls gesperrt werden.

Minimale und maximale Beitragslänge sind ein weiterer Baustein.
So kann nicht einfach mal eine URL hineinkopiert und abgeschickt werden.

Sollte dann doch mal etwas durchkommen, kann nach der Analyse die Badwordliste dementsprechend erweitert werden.

Drückt die Daumen das mein Book weiterhin clean bleibt.

Gruß Marco

Marder
02.04.2007, 16:08
Hallo,
mein Bruder hat mir hier euer Forum empfohlen. Und da möchte ich mal wieder dieses Thema aufbringen....
Und zwar hab ich ein PHP-Gästebuch, welches ich jetzt eigentlich schon SPAM-Frei bekommen habe -> ich hab mir einen Filter eingebaut, der jede Mail nicht einträgt die ein Verdächtiges Wort, z.b. url drin hat. (Klar der Freundliche nutzer bekommt eine Nachricht, die sagt, dass er seinen Text überarbeiten soll etc)

Nur hab ich jetzt gesehen, dass jeden Tag Bots etwa 50-70 Einträge machen wollen. Meine Frage ist nun: Wie kann ich diese Bots denn ärgern, dass sie mein Gästebuch komplett in Ruhe lassen? Ich dachte da an irgendwas wie: bei 2 maligem Spam-Versuch wird dem betreffenden sein Rechner heruntergefahren oder so..... Geht sowas? Oder lieber einfach die Bots machen lassen und nciht weiter auf sich aufmerksam machen?

truelife
02.04.2007, 18:58
Wie kann ich diese Bots denn ärgern, dass sie mein Gästebuch komplett in Ruhe lassen? Ich dachte da an irgendwas wie: bei 2 maligem Spam-Versuch wird dem betreffenden sein Rechner heruntergefahren oder so..... Geht sowas?

==> Virus programmieren...

Nein im Ernst, das geht technisch überhaupt nicht. Genausowenig kannst du versuchen, einen Sattelitenreceiver per Funkwellen aus dem All abzuschalten...

exe
03.04.2007, 08:25
Selbst wenn es gehen sollte, sollte man die Finger davon lassen. Solche Gegenaktionen können dazu führen, dass man mit dem Strafgesetzbuch in Kontakt kommt. Blockt die Bots und gut ist es. Wer etwas mehr Aufwand treiben will kann höchstens kleine Warteschleifen einziehen die den Bot ausbremsen. :)

Marder
03.04.2007, 20:47
Hmm OK, dann lass ich das mal lieber..... :( ... obwohl es sicher ein spaß gewesen wäre :D

Aber wie will ich denn die Bots ausbremsen? DIe Tragen doch den ganzen Müll per script ein und warten doch gar nicht auf eine Antwort (oder doch? )

fcbfan
06.04.2007, 20:05
Auch ich hatte schon genug spam in meinen gästebüchern. Ich habe nun endlich alle Gästebucher entfernt ud bin wie gesagt clean :D

Gästebücher sind aus meiner Sicht nicht mehr Zeitgemäß und es gibt auch schon bessere Lösungen wie z.B. Shoutbox...

horus
07.04.2007, 08:30
Gästebücher sind aus meiner Sicht nicht mehr Zeitgemäß und es gibt auch schon bessere Lösungen wie z.B. Shoutbox...

Eine Shoutbox und ein Gästebuch verfolgen aber schon ein wenig andere Ziele ...

Das Gästebuch ist dazu da um Grüße zu hinterlassen, die auch noch nach Jahren nachgelesen werden können.
Eine Shoutbox ist ein Quasi Chat, wo man sich zeitnah unterhalten kann ...
Die Nachrichten sind maximal in einem Archiv gespeichert.

Nur wie schon oben gesagt sind die Ziele von Shoutbox und Gästebuch etwas anders gelagert.

exe
08.04.2007, 11:30
Aber wie will ich denn die Bots ausbremsen? DIe Tragen doch den ganzen Müll per script ein und warten doch gar nicht auf eine Antwort (oder doch? )

Klar kann man die ausbremsen. Du brauchst nur ein Kriterium anhand dessen du sie identifizieren kannst. Somit ist es in PHP möglich die Jungs mittels sleep()-Funktion eine Runde warten zu lassen, bevor du die Fehlermeldung ausgibst, wie Sirius oben schon einmal schrieb.

Das funktioniert wie folgt:

-> Bot schickt Anfrage an Webserver (mit dem Spameintrag per POST oder GET)

-> Webserver ruft Script auf (meist ein PHP-Skript) und übergibt diesem die Daten

-> Skript prüft ob es sich um einen Bot handelt, wenn ja ruft es die Funktion sleep() auf

-> Skript sendet die Antwort (z. B. Fehler)

Selbst wenn der Bot nicht 60-Sekunden wartet, so bleibt er doch ein paar Sekunden hängen, wenigstens bis sein interner Timeout abgelaufen ist. Der Grund ist, er muss warten um feststellen zu können ob die Daten überhaupt angekommen sind.

MerlinHH
09.05.2007, 11:15
Bei mir hilft zuverlässig ein Formular, das zufällig vergebene Feldnamen für das Eingabeformular nutzt.

In einem Hiddenfeld (mit CSS) werden die Formularnamen mit dem Trenner | als String leicht verschlüsselt übergeben, damit die aufgerufene Seite weiß, welches Feld welchen Wert beinhaltet.

Dazu noch Hiddenfelder (ebenfalls per CSS) mit den üblich verdächtigen Namen (name, vorname, mail usw.). Wenn eins dieser Felder einen Wert übergibt -> Papierkorb.

Als "Verschärfung" wäre noch eine OptIn-Regelung denkbar. D.h., der Besucher erhält eine Bestätigungsmail mit einem Freischaltlink.

Ich glaube, seit September 2006 kamen so 2 Einträge durch, die den Log-Files zufolge händig ausgefüllt wurden. Der Rest ging ins Nirvana.

Capa
02.06.2007, 14:59
Also die 8 Beiträge sind mir etwas zuviel sorry hab also nicht alles durchgelesen aber mal so am rande:
Ich hatte auch Probleme mit einem Spammer(Bot oder Mensch ka) jedenfalls hab ich das gb dann so umgebaut das derjenige der einen eintrag in das Gästebuch macht erst die generierte email innerhalb von 48h bestätigen muss und
bisher hat es noch kein weiterer eintrag mit spam in mein GB geschafft.
Nach 48h wird der nicht aktivierte eintrag aus der Datenbank gelöscht,
somit reinigt sich das Gästebuch von alleine.
Da die meißten Spammer eine zufällige email generieren ist dies eine wirksame
methode. Und wer die email nicht bestätigen will der hat auch nix in meinem
GB zu tun.

P.S.: Die email wird auch verschlüsselt angegeben im GB also das
auslesen von emails wird damit erschwert.


Achja was einige hier geschrieben haben das Bots nicht so intelligent wären, dazu kann ich nur sagen ich bin selber Programmierer (keine spamsachen) und man kann solche sachen ganz einfach und effektiv schreiben.

Mfg Capa

t-rex
02.06.2007, 22:39
Hallo erstmal ;-)

eigentlich hatte ich ja was anderes gesucht, aber die heisse Diskussion über die "dummen" Bots hat mich dann doch festgehalten und zum lesen animiert.

Aus meinen Erfahrungen weiss ich, dass es da ein ganzes Spektrum an Möglichkeiten gibt und eigentlich jeder Recht hat und auch wieder nicht.

Recht in sofern, dass es fast immer die genannte Form des Bots gibt. Und Unrecht, dass es sonst nichts anderes gibt.

Ich betreibe einen Foren und Gästebuchservice und habe das Problem Spam immer vor mir hergeschoben. Das Ergebnis war zu normalen Zeiten, bis zu 25.000 erfolgte und versuchte Spameinträge.

Ich versuch hier mal das Spektrum aufzuzeigen.

1. Bot kommt über Suchmaschinen. Vermutlich wurde mit "allinur:submit.php" nach den Skripten gesucht und diese dann so wie sie gefunden wurden, abgefeuert.
a) Für den einen Bot ist der Job damit getan
b) Andere Bots schauen noch, was im Ergebnis steht und versuchen es im Zweifelsfalle noch einmal.

2. Bot kommt über Suchmaschine. Vermutlich sucht er nach "Absenden", "Anmelden" oder was sonst halt so auf einer typischen Formularseite steht. Dann wird die Seite aufgerufen, und es wird geprüft, welche Felder das Formular enthält. Diese werden mit sinnigen oder unsinnigen Werten gefüllt und das Formular wird dann abgeschickt.

3. Der Bot sucht sich die Seiten im Netz zusammen. Er verhält sich wie ein Suchmaschinenspider und verfolgt jeden möglichen und unmöglichen Link. Als Useragent gibt er einen bedeutungsvollen Fantasienamen an. Seiten die ein Formular enthalten, werden wohl speziell getaggt und der kleine Bruder macht nun die Arbeit und geht die Formulare durch.

4. Als Unterstützung zu den zuvor genannten Möglichkeiten wird eine Horde Schüler angestellt, die für ein kleines Taschengeld individuell nach weiteren möglichen Zielen suchen und die Datenbank ergänzen.

Das sind also schon mal die groben Richtungen. Natürlich gibt es da auch noch einige Facetten und Vermischungen. Darauf brauch ich aber gar nicht eingehen, da hier nur die Phantasie die Grenze ist.

Nun gibt es noch die Unterscheidung von vollautomatisch und halbautomatisch. Sowie die Erstellung eines Reports.

Dass heisst beim vollautomatischen Bot wird im besten Fall noch ein Logfile mit einigen spärliche Informationen angelegt. Während bei der halbautomatischen Variante, wann immer der Bot sich unsicher ist, inne hält und fragt, wie er weitermachen soll oder diese Frage in ein Logfile ablegt.

Ein etwas aufbereitetes Logfile ist dann eine Art Report und jeder Eintrag wird je nach Ergebnis der Überprüfung korrigiert oder beiseite gelegt.

Das war jetzt nur mal ein minimaler Abriss meiner Erfahrungen und Beobachtungen. Wenn man das wirklich komplett abhandeln möchte, müsste man eine Doktorarbeit schreiben.

Aber nun zwei von mir angewandte Techniken. Das heisst, das eine ist ein Service, den man in seinen Formularen oder Seiten nutzen kann. Und noch einige andere positive Funktionen hat. Dabei handelt es sich um Bot-Trap. Der Service ist nicht von mir, und da dies mein erstes Posting ist, möchte ich nicht gleich hier mit Urls um mich werfen. Einfach mal danach googlen.

Die ergänzende Massnahme ist, und wird bei mir mittlerweile auf fast allen Blogs und Formularen angewandt.

Das Formular, erhält ein zusätzliches Input-Feld. Dieses Feld nenne ich email, url oder homepage. Einfach halt einen Namen, den der Bot richt geil findet. Das Feld wird per CSS ausgeblendet. Das mache ich auf die unterschiedlichsten Methoden, damit kein Schema erkennbar ist.

Das eigentliche (alte) Feld Email bekommt einen anderen nicht sooo prickelnden Namen. Sowas wie recommend, empfehlung, bottrap oder was einem sonst so einfällt.

Wenn nun dieses Formular abgesendet wird, wird in einem kleinen Skript, das noch vor allem anderen ausgeführt wird, überprüft, ob das "versteckte" Feld ausgefüllt wurde.

- wenn Ja, dann Bot! Der Request wird geloggt und es wird ein 403 oder 401 zurückgegeben.
- wenn Nein, Dann User!? Es wird dann der Wert aus dem sichtbaren Feld in das Feld mit dem richtigen Namen, für die normale Weiterverarbeitung, kopiert. Und die Spamerkennung wird an die Blackliste deligiert.

- Wenn auch die Blackliste nicht greift, wird die letzte Überprüfung durch Bot-Trap erledigt.

Alle Ips und Useragents, die von einem Bot geloggt werden, werden dann in eine Blackliste übertragen, die wie oben erwähnt, im zweiten Schritt überprüft wird. Dadurch kann ein Bot auch intelligenter werden, was ihm nun nichts mehr bringt. Denn er ist erkannt.

Wichtig bei dem ganzen Vorgehen, in der Ergebnismeldung nie den Grund angeben, warum er gesperrt wurde. Denn das ist ein Anhaltspunkt, der bei zumindest der halbautomatischen Auswertung erkannt werden kann.

Jedenfalls habe ich es geschafft, den Spamanteil von 25.000 pro Tag auf 0 zu reduzieren.

Sonnige Grüsse
HaPe

schmubo
10.06.2007, 23:57
Nahmd!

Die Ausführungen von t-rex zur Psychologie des Spam-Bots und zu den möglichen Abwehrmaßnahmen waren sehr aufschlussreich.

"Intelligente" Bots sind mir noch nicht begegnet - rudimentäre PHP-Kenntnisse reichen meiner Erfahrung nach aus, um Gästebücher spamfrei zu halten.

Ungeachtet der von der "Aggressorenseite" eingesetzten Technik habe ich mir Gedanken darüber gemacht, wie ich Spam-Bots aussperren kann. Die erste Maßnahme war sodann eine Captcha-Routine, an der allein schon sämtliche Bots gescheitert sind. Alle misslungenen Eintragungsversuche wurden in einer Log-Datei protokolliert. Dennoch störte mich, dass die Spam-Bots überhaupt bis zur Eintragungsseite vordringen konnten.

Also habe ich (Maßnahme #2) dem Gästebuch eine Seite vorgeschaltet, die einen Besucher nur zum eigentlichen Gästebuch-Skript weiterleitete, wenn er folgende "Hürde" überwinden konnte:
Sind Sie ein Spammer? Beantworten Sie die Frage bitte mit einem klaren und deutlichen nein. Bemühen Sie Ihre Tastatur, um das nachfolgende Textfeld mit diesen vier Buchstaben zu füllen.
Auch das überforderte sämtliche Bots, die bisher mein Gästebuch heimgesucht haben.

Die dritte Maßnahme war ein Befreiungsschlag, an dem die Bots schwer zu knabbern hatten: Das Gästebuch zog ganz einfach um in ein neues Verzeichnis! Dieser Ordner wird von Google und Konsorten ignoriert (robots.txt), was imho kein Problem darstellt - wer nach Gästebüchern googelt, ist suspekt. Der Umzug bewirkte, dass die Spam-Bots ihr Ziel nicht mehr fanden und auf der 404-Seite landeten...

...bis ich ein spezielles Gästebuch für Spammer an der altbekannten Stelle plazierte (vierte Maßnahme). Dort tragen nun die Bots ihren Müll dankbar wieder ein und sobald die diesen Blödsinn enthaltende Datei 1 MB übersteigt (das dauert etwa zwei Wochen), wird sie gelöscht und das Spiel beginnt von vorn.
Dass die veröffentlichten Einträge keine anklickbaren Links enthalten und von den Suchmaschinen nicht indexiert werden, versteht sich von selbst. Und es gibt auch keine internen Links, die auf das Spammer-Gästebuch verweisen. Und damit komme ich nochmal zurück zur Intelligenz der Spam-Bots:

Sie versuchen es. Immer und immer wieder. Sie merken nicht, dass ihre Eintragungstaktiken und -strategien in Leere laufen. Sie versuchen nicht, neue Wege zu beschreiten. Aber sie geben nicht auf. Wenn die Spammer ihre eingezäunte Spielwiese haben und das "richtige" Gästebuch Google unbekannt ist - warum sollen wir uns über Spam ärgern? Spammerfoppen ist für mich zu einer angenehmen Freizeitbeschäftigung geworden.

Schöne Grüße
schmubo

exe
11.06.2007, 12:08
Man könnte auch mit den IPs die auf dem "alten" Gästebuch aufschlagen die Firewall / htaccess füttern und so Spammy für einen gewissen Zeitraum erden. Eine weitere Idee wäre auch, auf der Seite ein Bild einzubetten (welches in Wirklichkeit ein Script ist). Wird dieses Bild aufgerufen, wird die IP für 10 Minuten freigeschalten und darf einen Eintrag verfassen. Bots lesen keine Bilder, darum sollte das recht zuverlässig funktionieren. Die Kollateralschäden würden sich bei dieser Methode auch in Grenzen halten.

Persisteus
15.06.2007, 18:42
Ahoi! ;) Ich beschäftige mich seit kurzem mir diesem Thema, weil ich gerade an einer Seite werkel, für die ich u.a. auch ein Gästebuchskript programmieren möchte.
Ich habe mir den ganzen Thread hier durchgelesen, bin aber zu dem Schluss gekommen, dass all eure Lösungsvorschläge nicht gegen den Spam helfen, den so manche Menschen von sich geben. Es ist für jeden ein Leichtes, z.B. beleidigende Gästebucheinträge zu verfassen. Diese stehen dann so lange dort drin, bis der Administrator es merkt, und das kann u.U. ganz schön dauern. Und da man ja in gewisser Weise für die Inhalte seiner Seite verantwortlich ist… :sick:

Meiner Meinung nach hilft da nur manuelle Freischaltung weiter. Um den Arbeitsaufwand gering zu halten, sollte man anhand einer IP-Blacklist eine Vorsortierung vornehmen. Die restlichen Einträge müssen von Hand freigeschaltet werden. Wird dabei eine bestimmte IP-Nummer des öfteren als Spam markiert, kann man sie ja automatisch der Blacklist hinzufügen lassen.

Was haltet ihr davon?

schmubo
15.06.2007, 23:15
@Persisteus:
Natürlich gibt es immer wieder Schwachköpfe, die Unflat in Gästebücher schreiben. Den kann man problemlos löschen. Wenn Du Deinem GB-Skript eine E-Mail-Benachrichtigung für das Vorliegen eines neuen Beitrags einprogrammierst, kann der Administrator zeitnah auf beleidigende Inhalte reagieren. Zum Beispiel mit einem Kommentar.

Prüfen und freischalten... das stellt den schreibfreudigen Surfer, der ein Gästebuch ansteuert, unter Generalverdacht. Das riecht nach Zensur. Das ist die Schäublefizierung des Internets. Und deshalb stehe ich Deinem Vorschlag ablehnend gegenüber.

Manuell eingetragener Spam steht in einem verschwindend kleinen Verhältnis zu den automatisierten Massenattacken. Es ist ein Unterschied, ob ich täglich 50 Links zu Online-Casinos und Viagra-Verkaufsstellen aus dem Gästebuch löschen muss oder ob ich mich jedes halbe Jahr einmal über einen Idioten ärgere, der mich und meine Internet-Präsenz verbal angreift.

Mit dem Idioten setze ich mich persönlich auseinander. Automaten bekämpfe ich automatisch. Und jeder, der etwas in mein Gästebuch eintragen will, ist herzlich willkommen.

Persisteus
16.06.2007, 07:58
Prüfen und freischalten... das stellt den schreibfreudigen Surfer, der ein Gästebuch ansteuert, unter Generalverdacht.
Ach wirklich? Guckst du nicht auch erst einmal aus dem Fenster, bevor du die Tür öffnest? Könnte ja entweder der Postbote oder die Zeugen Jehovas sein…
Auch öffnest ja DU die Tür, und nicht irgendein Automat, der z.B. versucht, Anhand des Nummernschildes des Autos die Identität der Person zu ermitteln.

Auch darf man nie vergessen: Man ist selbst für die Inhalte auf der Seite verantwortlich, und nicht irgendein Automat. Macht man also z.B. volksverhetzende Beiträge über seine Gästebuch öffentlich zugänglich (und kann sie nicht direkt löschen, weil man z.B. gerade schläft oder sich gerade im Urlaub befindet), dann kann das ganz schön Ärger geben und auch den Ruf bei den anderen Besuchern schädigen.

Das hat nichts mit Zensur zu tun. Das sollte man vielleicht so ähnlich wie Leserbriefe an eine Zeitschrift sehen. Da wird auch jeder Brief gelesen und überprüft, und nicht einfach so abgedruckt.

Itzi
14.08.2007, 17:44
Ich glaube für mich die Lösung gefunden zu haben, und möchte euch meine Erfahrungen nicht vorenthalten:

Captchas wollte ich lange nicht einsetzen, da ich das GB für normale Menschen recht attraktiv halten möchte. Hab mal probiert, mit Sessionvariablen usw. zu prüfen, ob es echte menschen sind, die schon vorher eine gewisse Zeit auf anderen Seiten meiner HP verweilt sind. Fazit: Etwa 90% der Attacken wurden abgewehrt, nach ein paar Wochen war aber das alte Level wieder erreicht.

Schlussendlich ist mir die Hutschnur geplatzt und ich habe ein Captcha eingesetzt. bild.php erzeugt das Bild und speichert den Code in einer Sessionvar.
Das GB überprüft ob der Code (POST=SESS) stimmt.
Ich war etwas enttäuscht, da etwa ein Viertel des SPAM durchkam. War aber mein Fehler. Ich hatte nämlich nicht bedacht, dass die Dinger mein Formular gar nicht aufrufen sondern nur ihren Scheiss per POST absenden.
0=0 ... eh klar - also habe ich noch strlen oder isset ergänzt. Das wars.
Nachdem ich aber die Nase voll hatte habe ich einen krassen Schritt gemacht, den ich mir schon lange überlegt hatte:

Mir ist aufgefallen, dass praktisch keiner meiner wirklichen Gäste einen Link hinterlassen will. Das GB ist ja eh nur für Grüße gut.
Und ohne Links machen SPAMs ja auch meist keinen Sinnn.
Also habe ich das Homepage-Feld versteckt - wer da was einträgt kommt nicht durch.
Weiters überprüfe ich, ob im Text ein Link steht.

Mit dieser - zugegeben krassen - Maßnahme hab ich endlich meine Ruhe - zumindest siehts bis jetzt sehr gut aus!

Aber auch das Captcha leistet jetzt gute Dienste.

Hier ein Auszug ausm Logfile:

14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-email-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-email-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-email-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-email-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-email-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-email-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
14.08.2007 xx:xx:xx-homepageform-linkintext-noicode
14.08.2007 xx:xx:xx-homepageform-linkintext-wrongicode
(icode ist der Captchacode)

Vielleicht versuche ich es wieder mal ohne Captcha. Mal sehen.
Eine Warteschleife werde ich auch noch einbauen. Allerdings nur eine sehr kleine, dass es der wartende Bot nicht merkt nicht irgendwann aufhört auf die Antwortseiten der GB zu warten.

camworks
15.08.2007, 01:49
tach,

es gibt für gästebücher und andere gelegenheiten auch bot-fallen, wie die von www.bot-trap.de ... das ist ein kostenloses gemeinschaftsprojekt und wird von vielen usern mit spammer-daten gefüttert (die überprüft werden). ich selbst habe die bot-trap auf mehreren domains am laufen und bin so nebenbei auch wieder frei von hijackern und anderem gesindel.

ich kann jedem nur raten, sich das mal näher anzuschauen!

rsWhite
19.08.2007, 00:42
Also ich beschäftige mich auch schon länger mit Methoden zur Spamabwehr und habe auf meinem Blog eine Liste mit Abwehrmethoden (http://blog.rswhite.de/archives/7) zusammengestellt.
Ebenfalls programmiere ich gerade ein Framework was Spam erkennen und abwenden soll und teils sogar lernfähig ist, das ganze wird wohl morgen downloadbar sein, war die letzten 2 Tage zu faul eine Readme zu schreiben damit jeder damit klarkommt.

ma1936
21.08.2007, 18:18
Hallo an alle Hilfswilligen,
leider wird eine von mir betreute Homepage seit einigen Tagen zugemüllt. Ich versuche mit meinen bescheidenen Programmierkenntnissen etwas dagegen zu tun. Meine erste Maßnahme "Captcha" hat leider nicht gegriffen.:mad: Bei meinem bemühen mich in die Problematik etwas einzuarbeiten, bin ich auf die Ausführungen von Spastispam von 07,.03.06 gestossen. Wie ist das mit dem angeführen Code zu verstehen. Ich habe einmal Domain, Ordnername des Gästebuchs, Dateiname der entsprechenden Datei mit realen Daten meiner Homepage ersetzt. Wenn ich den Code in die Adresszeile des Browsers eingebe, lande ich zwar bei meinem Formular zur Eingabe des Gästebucheintrags, aber eingetragen ist dort nichts. Wenn das so funktionieren würde, wie beschrieben, dann wäre doch ein bescheidener Schutz schon gegeben, wenn man den Gästebuchordner und den Dateien irreführende Namen gibt. Frage, woher nehme die Spamer die Bezeichnungen der relevanten Ordner und Dateien bei meinem Provider? Oder sehe ich das zu einfach. Kann mir jemand Hinweise geben, die auch einer, der nur Grundkenntnisse in PHP hat, verstehen und ausführen kann? Dafür schon mal meinen Dank

Nordin
24.08.2007, 00:10
Frage, woher nehme die Spamer die Bezeichnungen der relevanten Ordner und Dateien bei meinem Provider? Oder sehe ich das zu einfach. Kann mir jemand Hinweise geben, die auch einer, der nur Grundkenntnisse in PHP hat, verstehen und ausführen kann? Dafür schon mal meinen Dank
Ist im grunde einfach... Ich schaue mir an was du für ein Forum (Gästebuch) hast... installiere mir das und schaue mir den quelltext an der für das eintragen des posts zuständig ist... danach baue ich mir das script nach und trage in dem formular unter <form> deine url ein... dann klicke ich auf senden... zack bum steht er bei dir drin *g* das sind riesen lücken die php-progger vernachlässigen...

Versendet wird das formular übrigens per POST wenn du direkt was im Browsereingibst ist das GET...

Was Captcha angeht, das ist auch schon teilweise kein hinderniss mehr... cleverer sind da schon dynamische fragen die nur ein mensch beantworten kann wie z.B. "um wieviel uhr ist mittag?" oder sowas...

Also man sollte immer die $_POST variablem überprüfen... wenn dort ein spamwort erkannt wird blocke und logge die ip und alle anderen wichtigen daten... (sorry dass ich es jetzt hier wieder mache aber) schau dir mal www.ctxtra.de an das ist ein tool welches du in alle beliebigen scripte einbauen kannst... für die meisten Foren funktioniert auch der spamfilter sauber... ab der version v1.6 wird die von mir angesprochene $_POST variable immer überprüft... so kann nur spam eingetragen werden wer noch nicht bekannt ist...

Merke:
Es gibt keinen 100%igen schutz vor SPAM!!!

Itzi
30.08.2007, 17:01
Meine erste Maßnahme "Captcha" hat leider nicht gegriffen.:mad:

Überprüfe mal, ob sich nicht irgend ein doofer Fehler beim Einbauen des Captchas eingeschlichen hat. Ich bin eigentlich auch sehr erfahren in PHP, aber ich denke auch nicht immer an alles.

Ich war sehr verblüfft als mein Captcha nicht funktioniert hat. Ich hatte nur überprüft ob das Captcha richtig ist. Wird aber mein Formular gar nicht ausgegeben - damit wird die Datei chapcha_img.php (sondern gleich gepostet), wird ist aber Sessionvariable leer. also war $captcha=$_POST['captcha']=''
Eine Zusätzliche Überprüfung mit strlen() hats dann gebracht. Seither ist mein GB spamfrei.

Noch ein Tipp:
Das Captcha wurde bei neuaufrufen des Formulars nicht immer neu geladen - es war ja noch im Cache des Browsers. Also war der Code noch der Gleiche...
Ein beliebiger, sich ändernder Parameter hat das gelöst:
chapcha_img.php?time=1025545165

schmubo
22.09.2007, 23:01
In meinen Server-Statistiken tauchen immer wieder eigenartige Einträge auf, die sehr gezielte Zugriffe auf nicht existierende Dateien protokollieren. So verlangt zum Beispiel ein Request die Datei /administrator/components/com_serverstat/install.serverstat.php?mosConfig_absolute_path=http://englishforbusinessonline.com/tool20.dat?&list=1&cmd=id.

Aha! Da versucht also jemand, mittels Skript ins tiefste Innere eines CMS einzudringen. Weil sich diese Vorfälle in letzter Zeit häufen und Spammerfoppen zu einem meiner Hobbys entwickelt hat möchte ich den Aggressoren Daten zurückliefern, an denen sich ihre Software verschluckt. Dazu muss ich aber wissen, wie diese Software arbeitet. Deshalb meine Frage: Gibt es so etwas wie ein Standard-Programm, mit dem die Mehrzahl der Foren- und Gästebuch-Spammer erbeitet? Bitte schiebt Informationen rüber - ich brenne darauf, den Spammern ein wenig Sand ins Getriebe zu streuen...

Schöne Grüße
schmubo

Foxi
03.12.2008, 14:38
Hi,

zur Zeit bekomme ich fast zwei Einträge pro Tag mit folgendem Inhalt.

Thema: DcufMDPfqYFVgUUm

Kommentar: with significant obesity; Hier waren jede menge Links, die wir uns nicht antun müssen und das Whois-Setzen ist in keinem Verhältnis zum Nutzen

E-Mail: scuko46 [at] scuk.pl

Ich hoffe doch das Puretec da schnellst möglichst was macht!!

Gruß Foxi

Q__
07.12.2008, 14:06
Ich hoffe doch das Puretec da schnellst möglichst was macht!!

Wieso sollte Puretec da was machen? Die hosten Deine Seite m.E. doch nur, oder sehe ich das falsch?
Der Betreiber des Gästebuchs bist letztendlich doch Du?

Wenn jede Nacht jemand die Luft aus Deinen Auto-Reifen lässt, wendest Du Dich doch auch nicht an Opel (VW, Mercedes, Honda, .... )?!

Insofern liegt es an Dir, entsprechende Maßnahmen zu ergreifen...

Gruß,
Q