2011-02-03 46 views
2

我想測試我的PHP消毒類對一些XSS腳本中使用的一個上 http://ha.ckers.org/xss.html解釋這一XSS字符串,它使用perl的

所以腳本之一在那裏有perl的,是這樣的一些一種perl語句?這是否會直接在服務器上執行,因爲perl是服務器腳本語言。

perl -e 'print "<IMG SRC=java\0script:alert(\"XSS\")>";' > out 

是我正在嘗試使用的腳本。雖然我還沒有測試過,但在使用之前我想了解它。

+0

他們只是用perl這裏產生含ASCII字符0的字符串。你可以使用任何你知道的語言來生成這樣的字符串。 – Konerak 2011-02-03 16:01:58

+0

爲什麼當有大量的圖書館已經開始創建自己的衛生規範? – epascarello 2011-02-03 17:00:38

回答

1

Perl不是攻擊,它只是演示如何生成攻擊,因爲你看不到一個普通的字符串。

問題是數據中有一個空字符(用Perl表示爲\0)。

2

\0是在laguage C.字符串終止字符因爲Perl是建立基於C的頂部,在過去,你可以注入這個「毒空字節」,使C部分,讀取的行 <IMG SRC=java代替整個字符串,因此可能允許整個事情,即使你試圖剝離像SRC=javascript:

大多這不工作了,因爲更高級的語言已經得到相當不錯,通過剝離出擊這樣的攻擊已經非常好在將字符串發送到較低級別的例程之前,像\0這樣的雜散控制字符。

你可以閱讀更多關於此毒nullbyte:http://insecure.org/news/P55-07.txt或在這裏:http://hakipedia.com/index.php/Poison_Null_Byte