我剛纔注意到,您可以通過使用字符串常量之間劃在JavaScript讓XSS攻擊:使用字符串文字之間的破折號在JavaScript
即:
var foo = 'bar'-alert(1)-'baz';
//this will display the alert
我的問題是,什麼做那裏的js口譯員? 這是什麼意思使用類似破折號? 我認爲它只是一個aritmetic操作符。
----- ----- UPDATE
對不起,我沒有解釋的XSS攻擊的真實語境:
我同意,警告(1)不看非常有害。但實際上,我是通過使用Burp Suite 進行的安全掃描得到的。主機正在竊聽我,但我建議將其作爲誤報漏洞。
無論如何,我使用的是查詢字符串參數redirección:
echo '<script>alert("bye!");window.location="'.escapeXSS($_REQUEST['returnto']).'";</script>';
攻擊者可能會插入一個匿名函數:
http://mysite.com/foo.php?returnto=bar.php
它也用JavaScript製作在那裏,通過改變之前重定向:
http://mysite.com/foo.php?returnto=bar.php'-function(){/* do something */}()-'
的結果將是:
<script>alert("bye!");windows.location='bar.php'-function(){/* do something */}()-'';</script>
,確實,得到excecuted功能(取決於PHP避開功能的質量)。
你能演示如何這可能會導致在XSS攻擊?我還不確定。 – 2011-05-03 21:45:07
是的,我已經更新了我的問題 – dami 2011-05-04 01:02:45