it-swarm.com.de

Abfragewert mit Chevrons sendet 302 an /

Wenn ein spezieller Abfragewert in die URL eingegeben wird, sendet Apache eine 302-Weiterleitung an die Root-URL (/) zurück.

Wir verwenden CPanel und besitzen den Server. Die Apache virtualhost-Datei wurde nicht berührt und wird von CPanel verwaltet. Ich habe versucht, einige Nachforschungen anzustellen, aber wenn ich bei meinem Problem "redirect" oder "302" eingebe, erhalte ich Antworten zu "how to url-rewrite".

Das Problem tritt auf, wenn chevrons und möglicherweise andere Sonderzeichen verwendet werden. Hier sind die getesteten Abfragen (auf meinem Server, in einer Test-Subdomain, ohne .htaccess, Skriptechos $_GET): http://dev.rihan.fr/echo.php

  • ?foo=%3c (dh ?foo=<) (OK)
  • ?foo=%3e (dh ?foo=>) (OK)
  • ?foo=%3c%3c (dh ?foo=<<) (KO)
  • ?foo=%3e%3e (dh ?foo=>>) (KO)
  • ?foo=%3d%3c (dh ?foo==<) (OK)
  • ?foo=%3c%3d (dh ?foo=<=) (KO)

Wir sind auf Apache 2.4.18, PHP 5.6.20.

Gibt es eine Idee, ob es sich um einen bekannten Fehler oder eine bestimmte Konfiguration handelt? Danke für Ihre Hilfe.

2
Max13

Es hört sich so an, als würde eine Sicherheitsfunktion auf dem Server die Verbindung umleiten, wenn der URL HTML-geschützte Daten hinzugefügt werden. Sehen Sie sich Ihre Apache-Konfigurationsdateien und die vhost-Dateien an und überprüfen Sie alle gefundenen Umleitungsregeln. Sie werden wahrscheinlich ein reguläres Muster haben, um HTML-geschützte Daten zu identifizieren und sie aus Sicherheitsgründen zu blockieren. Wenn Sie nicht alle Konfigurationsdateien durchsuchen möchten, können Sie versuchen, base64_encoded die maskierten Werte zu codieren, die die Probleme verursachen. Ich habe dies zuvor getan, als ein Server so konfiguriert wurde, dass HTML-maskierte Daten in der URL blockiert wurden, und es funktionierte als base64_encoded string hat das Regex-Muster bestanden.

2