kann man ein perl.cgi täuschen?remonte_address
Alain
- perl
0 MudGuard0 Alain0 Christian Kruse0 Alain
0 e7
0 Christian Kruse
Hallo ich weiss das thema ging schon oft durch die runde,aber ich denke
diese frage kam noch nicht.
Ich wollte mal wissen bei einer variable wie dieser
#!/usr/bin/perl
my $ip = $ENV{'REMOTE_ADDR'};
my $allowips = '23.34.24.23';
print "Content-type: text/html\n\n";
if ($ip ne $allowips)
{
print "access denied\n";
}
else
{
print "ip ok\n";
}
-------------------
wenn das cgi nun test.cgi heisst und man das cgi mit einer methode
wie test.cgi?REMOTE_ADDR=23.34.24.23 aufruft die ip dann nicht als
23.34.24.23 vorgetäuscht wird?
Grüsse vom Alain
Hi,
wenn das cgi nun test.cgi heisst und man das cgi mit einer methode
wie test.cgi?REMOTE_ADDR=23.34.24.23 aufruft die ip dann nicht als
23.34.24.23 vorgetäuscht wird?
Der ENV-Hash enthält die Environment Variablen des CGI-Scripts. Eine davon ist der _komplette_ Querystring. Teile des Querystrings tauchen _nicht_ im ENV-Hash auf.
cu,
Andreas
Hi,
Der ENV-Hash enthält die Environment Variablen des CGI-Scripts. Eine davon ist der _komplette_ Querystring. Teile des Querystrings tauchen _nicht_ im ENV-Hash auf.
ok,aber ich habe hier auch mal gelesen dass man anscheinend den HTTP_REFERER täuschen kann und der besteht doch auch
in einer Environment Variablen?
Grüsse
Alain
Hallo Alain,
ok,aber ich habe hier auch mal gelesen dass man
anscheinend den HTTP_REFERER täuschen kann und
der besteht doch auch in einer Environment
Variablen?
Das hat andere Ursachen. Der Referer ist ein
HTTP-Header, und den Inhalt eines HTTP-Headers kann
man nahezu beliebigen veraendern.
Gruesse,
CK
Hallo,
Das hat andere Ursachen. Der Referer ist ein
HTTP-Header, und den Inhalt eines HTTP-Headers kann
man nahezu beliebigen veraendern.
diese frage stellte sich mir eigentlich,weil ich ein paar perl.cgis
kenne die trotz dieser IP sicherheits variable ge-exploitet wurden mit erfolg und
vermutlich auch ohne proxy der diejenige Ip besass um das script zu manipulieren.
Der sicherheitscode sitzt meistens auch ganz am anfang vom script.
Aber ich vermute mal dass dies nicht mit einem client wie IE oder NS möglich ist.
Gruss vom Alain
Hi,
die IP wird vom Client nicht explicit übergeben, sie steht einfach so zur Verfügung (weil sie intern im TCP/IP-Protokoll steht), der Server speicehrt diese in eine Umgebungsvariable. Würde im Protokoll eine falsche IP stehen, kämen die Daten nicht beim Client an (ich glaube sogar dass dann nicht mal eine Verbindung aufgebaut werden könnte)...
Der Referer steht in einer Zeile des HTTP-Headers, den der Browser willkürlich festlegen könnte, im Normalfall aber die letzte aufgerufene Seite angibt. Dieser Referer ist nicht unbedingt notwendig, um eine Verbindung herzustellen.
E7
Hallo Alain,
my $ip = $ENV{'REMOTE_ADDR'};
Denk daran, dass es Proxies gibt -- und auch
durchaus transparente.
wenn das cgi nun test.cgi heisst und man das
cgi mit einer methode wie
test.cgi?REMOTE_ADDR=23.34.24.23 aufruft die
ip dann nicht als 23.34.24.23 vorgetäuscht wird?
Nein.
Gruesse,
CK