xt:Commerce会话固定及跨站脚本漏洞


添加时间:
2008-10-04

系统编号:
WAVDB-01227
BUGTRAQ: 31313

影响版本:
xt:Commerce 3.04

程序介绍:

xt:Commerce是基于电子商务引擎的网络购物系统。

漏洞分析:

xt:Commerce的advanced_search_result.php文件中没有正确地过滤对keywords参数所提交的输入便返回给了用户,这可能允许远程攻击者通过跨站脚本攻击在用户浏览器会话中执行任意HTML和脚本代码;此外XTCsid参数可以被设置为任意的值,这样攻击者就可以在用户登录到目标服务器之前便固定会话ID,在用户登录后使用预定义的会话ID值假设他们的在线身份。

漏洞利用:

/advanced_search_result.php?keywords=/>"<script>alert(15)</script>&x=1&y=1
https://localhost/xtcommerce304/shopping_cart.php/XTCsid/15031988

解决方案:
临时解决方法:
* 使用htmlspecialchars()或htmlentities()函数确保不要执行html标签和javascript代码:
$keywords = htmlentities($_POST['keywords']);
$keywords = htmlspecialchars($_GET('keywords'));
* 不要接受不是由服务器所生成的会话标识符:
if ( !isset( $_SESSION['SERVER_GENERATED_SID'] ) ) {
session_destroy(); // destroy all data in session
}
session_regenerate_id(); // generate a new session identifier
$_SESSION['SERVER_GENERATED_SID'] = true;

厂商补丁:
xt:Commerce
-----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.xtcommerce-shop.com/

信息来源:
<*来源:David Vieira-Kurz
链接:http://marc.info/?l=bugtraq&m=122210696006059&w=2
*>