itnirvana
Goto Top

Nginx Filestuktur filtern

Hallo,

wir haben eine Software die noch alt ist. Aber nicht upgedatet wird. Entwickler hätten sehr viel Entwicklungsaufwand.
Wir lösen das System im Frühling ab.

Nun haben wir immer im LOG

D:\sag97\MWS\server\default\temp\8690868764512166856_R1__employee_ID\poc.php

Das hiesst , da der Server im Web ist , haben wir da Zugriffsversuche.. Kann ich diesen Pfad exolizit der NGINX verbieten ?
Wenn ja , wie ?

Gruss
Paul

Content-ID: 4465614414

Url: https://administrator.de/contentid/4465614414

Ausgedruckt am: 26.11.2024 um 02:11 Uhr

4400667902
4400667902 31.10.2022 aktualisiert um 09:53:47 Uhr
Goto Top
Hattest du schon mal
Wie im NGINX Filtern

RTFM
itnirvana
itnirvana 31.10.2022 um 10:23:16 Uhr
Goto Top
ja war andere Frage.
Brauche ein Beispiel mal.

Gruss
Paul
Kamikater
Kamikater 31.10.2022 um 11:12:06 Uhr
Goto Top
location /server/default/temp/ {
	deny all;
}
4400667902
4400667902 31.10.2022 aktualisiert um 11:20:37 Uhr
Goto Top
Zitat von @itnirvana:

ja war andere Frage.
Brauche ein Beispiel mal.
Öhm kannst du nicht lesen? In dem Beitrag steht doch schon das Beispiel ...
itnirvana
itnirvana 31.10.2022 um 12:12:29 Uhr
Goto Top
Hallo,

ja danke. Mir ist eben nicht so klar , wenn ich die Manuals lese. Ob ich überhaupt so den Zugriff auf das Lokale Verzeichnis einschränken kann. HAbe eben mal ein Log runtergeladen. Bin mich am einlesen.

Gruss
paul
itnirvana
itnirvana 31.10.2022 um 14:01:09 Uhr
Goto Top
Hallo,

danke für den Input. Ich komme nun der Sache näher.

Ich habe diese Seite gefunden :
https://www-keycdn-com.translate.goog/support/nginx-location-directive?_ ...

Da heisst es

Skripte in beschreibbaren Verzeichnissen ablehnen:

location ~* /(media|images|cache|tmp|logs)/.*.(php|jsp|pl|py|asp|cgi|sh)$ {
    return 403;
}

Nun haben wir immer Ein Infected File. Was zwar gecleant wird in;
: D:\sag97\MWS\server\default\temp\869086833324666856_R1__employee_ID\poc.php

Nun denke ich könnte man in

location ~* /(sag97|MWS|server|defaul|temp)/.poc.(php)$ {
    return 403;
}

oder wäre es

location ~* /(sag97|MWS|server|defaul|temp)/poc.(php)$ {
    return 403;
}


Dies kommt in die Dateien Sites-.enabled oder ?

nginx

Gruss
Paul
Kamikater
Kamikater 31.10.2022 aktualisiert um 14:38:48 Uhr
Goto Top
Kann es sein, dass du eine Pipe | mit einem Slash / verwechselst? Also:

~* /(sag97|MWS|server|defaul|temp)
meint nicht den Pfad
/sag97/MWS/server/defaul/temp
sondern "mache folgende Regel, wenn ein Pfad entweder server, oder default, oder usw. enthält. Das ist ne Regex, erkennbar am ~*
itnirvana
itnirvana 31.10.2022 aktualisiert um 14:56:12 Uhr
Goto Top
Hallo,

ok danke. Das ist in dem Fall eine REGEX. Aber wie kann ich dann den Pfad definieren ?
Weil oben heisst es ja : Skripte in beschreibbaren Verzeichnissen ablehnen:

im Endeffect muss ich auch nur alles was poc.php ist ablehnen. Also anstatt | einfach ein / ?

location ~* /(sag97/MWS/server/defaul/temp)/.poc.(php)$ {
    return 403;
}


oder . Weil es generiert ja immer bestimmte Foildernamen

location ~* /(sag97/MWS/server/defaul/temp)/*.poc.(php)$ {
    return 403;
}

In der Seite https://www.keycdn.com/support/nginx-location-directive benutzen die eben wirklich dieses Zeichen |

Gruss
Paul
Kamikater
Kamikater 31.10.2022 aktualisiert um 15:05:32 Uhr
Goto Top
location ohne regex:

location /sag97/MWS/server/defaul/temp/ {
    return 403;
}

Die von dir verlinkte Seite ist super, lies dir nochmal speziell folgende Texten dort durch:

## Any query beginning with /data/ <-- das willst du
## Queries beginning with ...
## Matches requests ending in png

Edit:
Du schreibst: "benutzen die eben wirklich dieses Zeichen" Ja, aber du musst auch lesen, da steht bei diesem Zeichen "# Matches requests ending in png, gif, ico, jpg or jpeg."

Edit2:
"im Endeffect muss ich auch nur alles was poc.php ist ablehnen"
Dann
location ~* .poc\.php$ {
# Matches requests ending in ...
(ungetestet)
itnirvana
itnirvana 31.10.2022 um 15:08:51 Uhr
Goto Top
Kollege meint. Das geht eh nicht. Weil wir nicht die URL kennen ?
Somit kann ich ds auf Server nicht den Pfad einschränken.
Ich suche eben eine Einschränkung, das man eben auf diesen Server generell in dem PFAD das nicht ausführen kann.

Wir gehen davon aus, dass dies nicht direkt über eine URL reinkommt. Somit können wir auch nichts filtern. Das php kommt auf applikatprischer (hõherer Ebne) rein. In diesem Fall kann man mit URL Filter nichts machen.
Es müsste eben so der Server gesperrt sein...

Gruss
Paul
itnirvana
itnirvana 31.10.2022 aktualisiert um 15:20:28 Uhr
Goto Top
Andere IDEE wäre POC.PHP auf Windows nicht zulassen. Mal schauen, ob das geht.
Vielleicht per GPO .. Müsste wo sein Einstellungen --> Sicherheitseinstellungen --> Richtlinien für Softwareeinschränkung ,, mal schauen.. Gut wird auch nicht gehen. Weil das wird nur die Ausführung verhindern.
Aber nicht das runterladen..

Oder eben ich lasse den Pfad nciht zu.. Per NGNX

Gruss
Paul
Kamikater
Kamikater 31.10.2022 um 15:15:39 Uhr
Goto Top
Das klingt... unsinnig. Der Server wird ja wohl eine klare, eindeutige location haben, wo die Datei ist, sonst kann er den Pfad ja nicht bedienen und würde ne 404 werfen.

Vielleicht ist das ja auch der Fall? Du hast angefangen mit
"Nun haben wir immer im LOG"
Steht da in der selben Zeile die Zahl 200 oder 404 oder was anderes?
itnirvana
itnirvana 31.10.2022 aktualisiert um 15:33:39 Uhr
Goto Top
Bisher kein Log.
Weil ich muss ja erstmal das per NGINX correct filtern ! Damit bin ich ja nun weiter, wie es aussieht.
Frage ist ja generell ob :

location /sag97/MWS/server/defaul/temp/ {
    return 403;
}

wie ich nun das poc.php nicht zulasse über NGINX und fertig

Gruss
Paul
itnirvana
itnirvana 31.10.2022 um 15:36:59 Uhr
Goto Top
Hallo Kamikater,

meiner Meinung wäre es dann so
location ~* /sag97/MWS/server/default/temp/*.poc.php {
    return 403;
}


Gruss
paul
Kamikater
Kamikater 31.10.2022 aktualisiert um 17:39:55 Uhr
Goto Top
Nein, ich hab doch geschrieben:

location ~* poc\.php$ {
# Matches requests ending in ...
(ungetestet, editiert)

Lies:

~*: regex endet
poc: auf poc gefolgt von
\.: Punkt
php: und php

Das ist ein Regex, kein globbing (mit wildcards). Was du als * kennst, ist in Regex ein .+ oder .?

Das \ vor dem . sagt, dass es wirklich ein Punkt ist, und nicht als beliebiges Zeichen interpretiert wird. Kannst dich ja mal bisschen in Regex einlesen oder die von dir verlinkte Seite mal in Ruhe durchlesen und googlen, was du nicht verstehst.

Habs aber wie gesagt nicht getestet. Schau mal bei https://regex101.com/