Wie sicher ist HTTP_REFERER?!

Hallo zusammen!

Ich schreibe grade mit Perl eine komplexere CGI-Passwortabfrage um ein privaten Bereich eines Webs zu schützen.

Jetzt habe ich eine Frage:

Kann man den HTTP_REFERER fälschen?! Wie sicher ist er. Ich weiß, dass man so ziemlich alles was mit Computern zu tun hat fälschen kann, aber kann das auch ein Durschnittshacker, oder nur einer von solchen Profis, von denen es nur so ca. 100 in Deutschland gibt…

Bin für jeden Hinweis dankbar!

Benny

Unsicher
Hallo,

so unsicher, dass ich mich nicht darauf verlassen würde, wobei Trust also Vertrauen sowieso der Schwachpunkt Nummer 1 in der IT-Sicherheit ist. Man kann sich nicht mal drauf verlassen, dass die User halbwegs sichere Passwörter benutzen (von Sachen wie dem Usernamen ganz zu schweigen) ohne, dass man sie dazu zwingt…

Also wenn’s sicher sein soll, kann das ein Punkt sein, den du abklopfst, aber als einziges… no way…

Wenn Du noch Ideen für Sicherheitsmöglichkeiten brauchst, stehe ich gerne zur Verfügung

Arne
Der ganz sicher keiner der 100 ist, und vermutlich nicht mal als mittelklasse Hacker durchgehen würde, sich aber brennend für das Thema Sicherheit (und zwar von beiden Seiten) interessiert…

Erstmal Danke für die Einschätzung, aber ich bräuchte noch etwas konkretere Antworten…

Kennt jemand konkret eine Möglichkeit den REFERER zu fälschen, gibt’s da vielleicht irgendwelche Tools die auch nen Möchtegern-Hacker verwenden kann?!
(Es geht mir nicht darum diese Möglichkeit zu erfahren, nur ob es sie gibt!)

Bin weiterhin für jede Antwort dankbar!

Benny

Erstmal Danke für die Einschätzung, aber ich bräuchte noch
etwas konkretere Antworten…

Kennt jemand konkret eine Möglichkeit den REFERER zu fälschen,
gibt’s da vielleicht irgendwelche Tools die auch nen
Möchtegern-Hacker verwenden kann?!
(Es geht mir nicht darum diese Möglichkeit zu erfahren, nur ob
es sie gibt!)

WGet erlaubt dem Benutzer alle Parameter zu setzen, wie er mag.
WebWasher kann ihn ausblenden.
Perl Modul LWP erlaubt das beliebige setzen des Referers
Der Referer ist etwas, was der Client (i.d.R. der Browser) mitgibt. Ist aber eine „freiwillige“ Leistung.
Also, wie die anderen Dir bereits auch schon gesagt haben: „Der Referer ist für die Katz“.

Gruss Klaus

Hi,

Kennt jemand konkret eine Möglichkeit den REFERER zu fälschen,

telnet server.tld 80
GET /cgi-bin/script.cgi HTTP/1.0
Host: www.server.tld
Referer: http://www.server.tld/

(Es geht mir nicht darum diese Möglichkeit zu erfahren, nur ob
es sie gibt!)

Es ist wirklich nicht das geringste Problem, den Referer zu fälschen. Viele Proxies tun dies - woraus gleichzeitig folgt, daß nicht mal alle User mit den besten Absichten Deine Abfrage überstehen würden.

Der Referer ist schön, wenn man ihn hat; aber in der Gesamtheit nutzlos.

Cheatah

Hi,

Kann man den HTTP_REFERER fälschen?! Wie sicher ist er. Ich
weiß, dass man so ziemlich alles was mit Computern zu tun hat
fälschen kann, aber kann das auch ein Durschnittshacker, oder
nur einer von solchen Profis, von denen es nur so ca. 100 in
Deutschland gibt…

Manchmal scheint das einzige Kriterium fuer einen „Hacker“
zu sein, dass er RFCs gelesen hat :wink:

Also, Webserver und Webbrowser kommunizieren ueber das HTTP
Protokoll, das in RFC 2068 in jedem Detail beschrieben ist.
Ein Auszug bringt Licht ins Dunkel:

Quelle: http://www.ietf.org/rfc/rfc2068.txt?number=2068

14.37 Referer

 The Referer[sic] request-header field allows the client to specify,
 for the server's benefit, the address (URI) of the resource from
 which the Request-URI was obtained (the "referrer", although the
 header field is misspelled.) The Referer request-header allows a
 server to generate lists of back-links to resources for interest,
 logging, optimized caching, etc. It also allows obsolete or mistyped
 links to be traced for maintenance. The Referer field MUST NOT be
 sent if the Request-URI was obtained from a source that does not have
 its own URI, such as input from the user keyboard.
...
 Note: Because the source of a link may be private information or
 may reveal an otherwise private information source, it is strongly
 recommended that the user be able to select whether or not the
 Referer field is sent. For example, a browser client could have a
 toggle switch for browsing openly/anonymously, which would
 respectively enable/disable the sending of Referer and From
 information.

Die Client-Angaben sind frei programmierbar. Du kannst ja mal
per Hand mit einem Webserver sprechen, indem du angibst:

telnet www.wer-weiss-was.de 80

In dem Falle werden keine Client-Variablen gesetzt und schon gehoerst Du zum Club der Durchschnittsshacker …

Um etwas mehr Sicherheit ueber den Aufrufer zu bekommen,
musst Du auf IP-Ebene gehen und Dir die Pakete anschauen. Dort findest Du auch eine Absender-Adresse, zu der die Daten zurueckgeschickt werden sollen. Die laesst sich zwar faelschen,
Stichwort IP-Spoofing, setzt aber schon gewisse Kenntnisse und
Aufwand voraus. Naehere Infos zu IP unter RFC 791.

Gruss,

-Andreas.

Hi,

Manchmal scheint das einzige Kriterium fuer einen „Hacker“
zu sein, dass er RFCs gelesen hat :wink:

secret hacker-rule #11:
Hackers read manuals.

Cheatah, SCNR :smile: