Zunächst einmal verwende ich die EN-Version der CMSimple-Verwaltungsoberfläche und biete einen Dienst für DE-Benutzer an, weshalb ich die ein oder zwei Befehle in der EN-Version bearbeiten muss. Aber auch wenn ich die Verwaltungsschnittstelle auf DE umgestellt habe, bestehen meine Speicherprobleme weiter.
1) Nachdem ich festgestellt hatte, dass das Problem mit dem neuen Webhosting zu tun hatte, analysierte ich das Fehlerprotokoll für den 403-Fehler im Detail und stellte fest, dass in jedem Fall die WAF-Regeln meiner neuen Webhosting-Firewall
Atomicorp.com den 403-Fehler auslösten.
Im ersten Fall reichten einfache Textdaten in der Benutzerdatendatei Mailform formular .txt aus.
Dies ist ein Auszug aus dem Fehlerprotokoll.
Atomicorp.com WAF Rules: PHP payload detected"] [data "mail (privat)|fieldname=ddmf_sender_email|max=50|ver=email|req=true ….
[severity "CRITICAL"] [tag "SQLi"] [tag "RCE"] Access denied with code 403 (phase 2).
Ich habe diese Datei auf diesen One-Liner reduziert, der im folgenden Fall mit einem 403-Fehler fehlschlug
type=text|class=ddmf_text|label=
E-Mail (Privat) |fieldname=ddmf_sender_email|max=50|ver=email|req=true
Wenn jedoch E-Mail als Email geschrieben wird, kann es korrekt gespeichert werden.
Und wenn der Text E-Mail Privat ohne das () geschrieben wird, kann er auch richtig gespeichert werden.
Ich habe dann ChatGPT benutzt
“why is E-Mail causing "Atomicorp.com WAF Rules: PHP payload detected”] "
…
If "E-Mail (Privat)" is triggering the WAF alert "Atomicorp.com WAF Rules: PHP payload detected", it’s almost certainly due to a false positive caused by overly aggressive pattern matching in the WAF rule.
…
Die Antwort deutete darauf hin, dass die WAF-Regeln von Atomicorp.com etwas aggressiv umgesetzt wurden.
Ich leitete diese Antwort und die ChatGPT Vorschläge an meinen Webhosting-Support weiter,
Schließlich haben sie die WAF-Regeln von Atomicorp.com für meine Domäne angepasst, und jetzt kann ich die Dateien mit solchen Texten ohne den 403-Fehler speichern.
2) Ein ähnlicher Fehler wurde auch in der ersten Zeile von _demo.txt gefunden, einer CMSimple-Datei, die ohnehin nicht bearbeitet werden sollte, so dass ich dies nicht weiter analysiert habe.
3) Das dritte Problem war die Online-Bearbeitung der Datei languages/de.php, die ebenfalls die WAF-Regeln von Atomicorp.com auslöste: SQL-Injektionsangriff (detectSQLi)“
Was das Problem beim Speichern der Datei languages/en.php angeht, so zeigt das Fehlerprotokoll, dass es an diesem Variablennamen
delete_delete_selected_form scheitert und nicht am Inhalt der Variable, der geändert werden kann. Der fehlerhafte Text ist nicht der Text, der vom Benutzer eingegeben wird, sondern der Variablenname selbst
Auch wenn ich die CMS-Sprache ändere, tritt derselbe Fehler bei der Variable delete_delete_selected_form auf, z. B. mit dem deutschen Text „gewählte mailform löschen »“.
ChatGPT: “Why is Atomicorp.com WAF Rules: SQL injection attack (detectSQLi)"] [data "Tnn;,ARGS:PL3bbeec384_delete_delete_selected_form"] [severity "CRITICAL"] returning a 403 error”
Die Antwort und Vorschläge sind interessant, aber vielleicht nur für den Autor von CMSimple Mailforms, als Benutzer kann ich es nicht beeinflussen.
Aber ich werde diese Datei offline bearbeiten und bei Bedarf hochladen.
Fazit:
1) Die WAF-Regeln von Atomicorp.com verursachen 403-Fehler aufgrund von "false positives", die durch einen zu aggressiven "pattern matching" in der WAF-Regel verursacht werden.
2) Vom Benutzer bearbeitete Mailformulare Inhalt wurden nun zur "fine-tuning" der Webhosting-WAF-Regeln verwendet, um das erste Problem zu lösen.
Hoffentlich nützlich,
Neil