PHP和XSS跨站攻擊

2021-08-22 02:07:27 字數 1768 閱讀 8586

其實這個話題很早就想說說了,發現國內不少php站點都有xss漏洞。今天偶然看到php5的

乙個xss漏洞,在此小結一下。順便提醒,使用php5的朋友最好打下補丁,或者公升級一下。

如果你不懂什麼是xss,可以看

這裡,或者

這裡(中文的也許會好懂一些)。

國內不少論壇都存在跨站指令碼漏洞,例如

這裡 有乙個google hack+xss的攻擊例子,針對的是discuz

4.0.0rc3

。國外也很多這樣的例子,甚至google也出現過,不過在12月初時修正了。跨站攻擊很容易就可以構造,而且非常隱蔽,不易被查覺(通常盜取資訊後馬上跳轉回原頁面)。

如何攻擊,在此不作說明(也不要問我

<?php

$str

= "a 'quote' isbold"

;// outputs: a 'quote' isbold

echo

htmlentities

($str

);// outputs: a 'quote' isbold

echo

htmlentities

($str

, ent_quotes

);?>

這樣可以使非法的指令碼失效。

但是要注意一點,htmlentities()

預設編碼為 iso-8859-1,如果你的非法指令碼編碼為其它,那麼可能無法過濾掉,同時瀏覽器卻可以識別和執行。這個問題我先找幾個站點測試後再說。

這裡提供乙個過濾非法指令碼的函式:

function removexss($val) -_|\'\\';

for ($i = 0; $i < strlen($search); $i++) matches any padded zeros, which are optional and go up to 8 chars

// @ @ search for the hex values

$val = preg_replace('/([x|x]0'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ;

// @ @ 0 matches '0' zero to seven times

$val = preg_replace('/(�'.ord($search[$i]).';?)/', $search[$i], $val); // with a ;

} // now the only remaining whitespace attacks are \t, \n, and \r

while ($found == true) ([9][a][b]);?)?';

$pattern .= '|(�([9][10][13]);?)?';

$pattern .= ')?';

} $pattern .= $ra[$i][$j];

} $pattern .= '/i';

$replacement = substr($ra[$i], 0, 2).''.substr($ra[$i], 2); // add in <> to nerf the tag

$val = preg_replace($pattern, $replacement, $val); // filter out the hex tags

if ($val_before == $val)

} }

}

PHP和XSS跨站攻擊

其實這個話題很早就想說說了,發現國內不少php站點都有xss漏洞。今天偶然看到php5的乙個xss漏洞,在此小結一下。順便提醒,使用php5的朋友最好打下補丁,或者公升級一下。如果你不懂什麼是xss,可以看這裡,或者這裡 中文的也許會好懂一些 國內不少論壇都存在跨站指令碼漏洞,例如這裡 有乙個goo...

PHP和XSS跨站攻擊

其實這個話題很早就想說說了,發現國內不少php站點都有xss漏洞。今天偶然看到php5的 乙個xss漏洞,在此小結一下。順便提醒,使用php5的朋友最好打下補丁,或者公升級一下。如果你不懂什麼是xss,可以看 這裡,或者 這裡 中文的也許會好懂一些 國內不少論壇都存在跨站指令碼漏洞,例如 這裡 有乙...

PHP和XSS跨站攻擊

其實這個話題很早就想說說了,發現國內不少php站點都有xss漏洞。今天偶然看到php5的 乙個xss漏洞,在此小結一下。順便提醒,使用php5的朋友最好打下補丁,或者公升級一下。如果你不懂什麼是xss,可以看 這裡,或者 這裡 中文的也許會好懂一些 國內不少論壇都存在跨站指令碼漏洞,例如 這裡 有乙...